Fetch the repository succeeded.
import com.sun.tools.classfile.Dependency
import org.w3c.dom.Document
import org.w3c.dom.Element
import org.w3c.dom.Node
import org.w3c.dom.NodeList
import javax.xml.parsers.DocumentBuilder
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.transform.OutputKeys
import javax.xml.transform.TransformerFactory
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.stream.StreamResult
//上传码云 作为maven仓库
apply plugin: 'maven-publish'
apply plugin: 'publishing'
// 指定编码
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
// 打包源码
task sourcesJar(type: Jar) {
getArchiveClassifier().set('sources')
from android.sourceSets.main.java.srcDirs
}
task javadoc(type: Javadoc) {
failOnError false
source = android.sourceSets.main.java.sourceFiles
// classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
// classpath += configurations.compile
options.encoding = "UTF-8"
}
// 制作文档(Javadoc)
task javadocJar(type: Jar, dependsOn: javadoc) {
getArchiveClassifier().set('javadoc')
from javadoc.destinationDir
}
//artifacts {
// archives sourcesJar
// archives javadocJar
//}
def gId = "com.archean.lib"
def maven_url = "../maven"
def version_url = "../lib_version.xml"
publishing {
println(">---wirte " + maven_url + " version begin-------")
publications {
maven(MavenPublication) {
groupId = gId
artifactId = project.name
version = project.android.defaultConfig.versionName
artifact sourcesJar
artifact javadocJar
afterEvaluate {
artifact(tasks.getByName("bundleReleaseAar"))
}
}
}
repositories {RepositoryHandler handler ->
// mavenLocal()
handler.mavenLocal()
maven {
url = uri(maven_url)
}
}
//写入版本号
def xmlFile = new File(uri(version_url))
def factory = DocumentBuilderFactory.newInstance()
factory.setIgnoringComments(true)
def builder = factory.newDocumentBuilder()
def document = builder.parse(xmlFile)
def root = document.getDocumentElement()
def list = root.getChildNodes()
println(">---wirte " + project.name + " version begin-------")
println(">---file url:" + xmlFile.absolutePath)
def oldVersion = 0
def isAdd = false
//遍历寻找节点
def projectNode
for (int i = 0; i < list.length; i++) {
def node = list.item(i)
if (node instanceof Element) {
def elem = (Element) node
if (elem.getTagName() == project.name) {
//修改节点
projectNode = node
println(elem.getTagName() + " - " + elem.getAttribute("value").toString())
break
}
}
}
if (projectNode != null) {
isAdd = false
oldVersion = ((Element) projectNode).getAttribute("value")
((Element) projectNode).setAttribute("value", project.android.defaultConfig.versionName)
} else {
//新建节点
oldVersion = "0"
isAdd = true
projectNode = document.createElement(project.name)
((Element) projectNode).setAttribute("value", project.android.defaultConfig.versionName)
root.appendChild(projectNode)
}
//写入文件
def transformerFactory = TransformerFactory.newInstance()
def transformer = transformerFactory.newTransformer()
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes")
if (isAdd) {
//设置缩进(只有当 新增节点的时候,才去设置缩进)
// transformerFactory.setAttribute("indent-number", new Integer(1))
transformer.setOutputProperty(OutputKeys.INDENT, "yes")
}
def source = new DOMSource(document)
def result = new StreamResult(xmlFile)
transformer.transform(source, result)
println(">---" + oldVersion + " --> " + ((Element) projectNode).getAttribute("value"))
println(">---wirte lib version end-------")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。