2017-06-12 78 views
0

早上好,maven-publish multi-project artifact dependencies

我一直在尋找對我的問題的答案,但我找不到任何答案。 我用許多模塊構建了一個android項目。這些模塊應該在倉庫中發佈(首先在本地maven倉庫中)。 我已經做了兩個簡單的項目pr1,pr2演示項目。現在我已經爲pr2添加了pr1的依賴關係。

compile ('de.test:project1:1.0.0') 

之後,我可以發佈兩個文物。

現在,當我將名稱從pr2更改爲aPr2時,無法從aPr2中解析依賴項,因爲jar文件不存在。問題是aPr2是在pr1之前建立的。

我該如何告訴gradle以正確的順序構建它?

這是來自其中一個項目的我的gradle文件。 Pr1是相似的,沒有依賴性。

plugins { 
    id 'java' 
    id 'maven-publish' 
    } 
dependencies { 
// compile project(':project1') 
    compile ('de.test:project1:1.0.0') 
    testCompile 'junit:junit:4.12' 
} 
sourceCompatibility = JavaVersion.VERSION_1_8 
targetCompatibility = JavaVersion.VERSION_1_8 
publishing { 
    publications { 
     publish(MavenPublication) { 
      groupId 'de.test' 
      artifactId 'project2' 
      version '1.0.0' 
      from components.java 
     } 
    } 
} 

至於

回答

0

你需要修改你的項目配置。

當您使用components.java時,maven-publish插件將從Gradle項目配置中設置groupId,artifactId和版本。

默認的artifactId已設置爲項目的名稱(默認:文件夾名稱)。它是隻讀的,但您可以覆蓋它。創建settings.gradle文件中的子項目文件夾,並設置模塊名稱:

rootProject.name = 'project1' 

寫幾行代碼寫進build.gradle文件根目錄的項目進行設置groupId和版本的所有項目。

allprojects { 
    group 'de.test' 
    version '1.0.0' 
} 

如果您設置一切運行正常,你可以刪除compile project(':project1')

評論您可以構建項目,你可以用de.test:project:1.0.0依賴性發布您的POM文件。