自動化發版系統有一步是通過mvn deploy:deploy-file 來上傳文件到nexus服務器. 之前只是上傳的jar包, 結果導致別人使用的項目編譯不過.
和舊版本對比發現原來缺少了pom文件, pom文件裏有我上傳jar包對應的依賴.
於是使用gradle生成pom
//參數傳入
flavor = project.hasProperty('flavor') ? flavor : "common"
task createPom {
apply plugin: 'maven'
description "create Pom for libY SDK"
pom {
project {
groupId mvn_groupId
artifactId mvn_artifactId
version mvn_version
packaging 'jar'
}
}.withXml {
//處理多渠道
def compiles = [configurations.compile, flavor == "op" ? configurations.opCompile : configurations.commonCompile]
def dependenciesNode = asNode().appendNode('dependencies')
compiles.each {
it.allDependencies.each { dependency ->
//通過本地引用的不要打進去
if (dependency.name != "unspecified") {
println(">>>>" + dependency.name)
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dependency.group)
dependencyNode.appendNode('artifactId', dependency.name)
dependencyNode.appendNode('version', dependency.version)
dependencyNode.appendNode('scope', "compile")
}
}
}
}.writeTo("${rootProject.buildDir}/sdk_out_temp/${flavor}/pom.xml")
}
這樣就可以通過mvn來部署文件了.
mvn deploy:deploy-file -DgroupId=$groupId -DartifactId=$artifactId -Dversion=$version -Dpackaging=jar -Dfile=$jar_name -Durl=http://mvn.ttttt.net/content/repositories/releases -DrepositoryId=mavenReleaseRepo -DpomFile=$pom_name