自动化发版系统有一步是通过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