Gradle生成pom文件, 包括依賴

自動化發版系統有一步是通過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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章