2016-11-21 32 views
0

我有一個包含不同庫模塊的android項目。我定義了一個將工件上傳到Maven倉庫的任務。當我直接在模塊的build.gradle中定義它時,它可以工作。我想要做的是在父母build.gradle中定義一次任務,並在每個模塊中重複使用它。如何爲幾個子模塊定義gradle任務?

我跟着引導here寫出下列構建配置:

我的項目設置是這樣的:

parent_project 
|- module1 
|- module2 
|- module3 

父/的build.gradle,默認

subprojects {  
    task installToLocalMaven(type: Upload) { 
     description "Installs artifacts to local Maven repository" 
     configuration = configurations['archives'] 
     repositories { 
      mavenDeployer { 
       pom.groupId = commonGroupId 
       pom.artifactId = artifactId 
       pom.version = gitBranch() + '-' + android.defaultConfig.versionName 
       if (android.defaultConfig.versionName.endsWith("-SNAPSHOT")) { 
        snapshotRepository(url: repositories.mavenLocal().url) 
       } else { 
        repository(url: repositories.mavenLocal().url) 
       } 
      } 
     } 
    } 
} 

project(':module1') { 
    ext.artifactId = "module1" 
} 
... 

執行gradlew :module1:installToLocalMaven線索對此錯誤Configuration with name 'archives' not found.

我假定使用父項目的配置對象。

如何確保從父母build.gradle內使用子模塊的配置對象?

+0

你見過gradle-fury了嗎?看起來像它所做的一切,你需要更多 – spy

回答

0

您可以使用任務的project屬性。只需在您嘗試訪問的子項目對象前添加task.project.即可:

configuration = task.project.configurations['archives'] 
+0

我試過這個,但它導致一個未知的屬性錯誤的任務 – Sven

相關問題