0

我需要上傳多模塊項目中生成的多個aar。我的項目結構如下。使用jenkins - gradle release將多個aar上傳到Nexus

Project Root 
    |--Main app 
    |--Sub-Module1 
    |--Sub-Module2 
    |--Sub-Module3 

每個子模塊產生,我需要上傳所有AARS的發行版本的Nexus但是我不希望的APK上傳到Nexus.I正在通過所有從詹金斯的聯繫地址和名氣AAR文件。

這裏是我的根的build.gradle

release { 
failOnCommitNeeded = false 
failOnPublishNeeded = true 
failOnSnapshotDependencies = true 
failOnUnversionedFiles = false 
failOnUpdateNeeded = true 
revertOnFail = true 
preCommitText = '' 
preTagCommitMessage = '[Gradle Release Plugin] - pre tag commit: ' 
tagCommitMessage = '[Gradle Release Plugin] - creating tag: ' 
newVersionCommitMessage = '[Gradle Release Plugin] - new version commit: ' 
tagTemplate = '$version' 
versionPropertyFile = './gradle.properties' 
versionProperties = [] 
buildTasks = ['uploadAllArchives'] 
scmAdapters = [ 
     net.researchgate.release.GitAdapter 
] 
git { 
    requireBranch = '' 
    } 
} 

task ("uploadAllArchives") { 
    doLast{ 
    println 'uploadAllArchives' 
    subprojects.each { subProject-> 
     if(!subProject.name.contains('app') && !rootProject) 
     it.uploadArchives.execute(); 
    } 
    } 
} 

發佈-的build.gradle

apply plugin: 'maven' 

uploadArchives { 
     repositories { 
     mavenDeployer { 
      repository(url: (project.hasProperty('repoUrl') ? repoUrl 
       : sonatypeRepo)) { 
       authentication(userName: sonatypeUsername, password: 
       sonatypePassword) 
       pom.groupId = sonatypeGroupID 
       pom.artifactId = project.name 
       pom.version = version 

       } 
      } 
     } 
    } 

子模塊的build.gradle:

apply from: '../publish-build.gradle' 

gradle clean build uploadArchives這成功上傳我的一切快照對Nexus進行了測試。

gradle release - 它成功地做了發佈,但沒有上傳任何東西到Nexus但是構建成功。

你能幫我解我所缺少的嗎?

回答

0

你可以通過添加

afterReleaseBuild.dependsOn project.getSubprojects().collect({it.getTasks().getByName("uploadArchives")}) 

這將做到這一點,如果你想上傳的所有子項目,但如果你的根項目也產生必須更換與getAllprojects getSubprojects()的工件()

+0

Hi Hillkon,謝謝你。不過,我不想上傳apk的(在應用程序模塊中生成),我只想上傳在子模塊中生成的aar。上面的代碼片段在app模塊中尋找uploadArchives任務。你有什麼想法,我怎麼能做到這一點? –

+0

嘿,沒有那麼多時間抱歉,但我會看看PomFilters,你可以使用https://docs.gradle.org/2.2/javadoc/org/gradle/api/artifacts/maven/PomFilterContainer.html 和 https://docs.gradle.org/3.3/userguide/maven_plugin.html#sub:multiple_artifacts_per_project – Hillkorn

相關問題