2014-01-23 120 views

回答

0

好的,所以你有兩個項目,而ProjA依賴於ProjB。

如果你已經爲這些人建立了一個gradle build,他們都會有一個文件settings.gradle,它至少定義了項目名和build.gradle,你可以在其中指定依賴關係。

例子: settings.gradle

rootProject.name = 'ProjA' 

的build.gradle

group = 'mygroup' 
version = '1.0' 

通過進一步增加搖籃出版插件之一(見Maven publishingIvy publishing),可以配置發佈。出版物又包含工件,即要上傳的文件(通常是一些存儲庫)。對於最小的Maven發佈 例子:

apply plugin: 'maven-publish' 
publishing { 
    publications { 
     core(MavenPublication) { 
      from components.java 
     } 
    } 
} 

的Maven的發佈插件將任務publishToMavenLocal(等等)添加到您的項目,地方安裝罐子~/.gradle/caches/

在ProjB的的build.gradle然後你可以定義一個編譯時依賴於ProjA像這樣:

dependencies { 
    compile(group: 'mygroup', name: 'ProjA', version: '1.0') 
} 
+0

感謝您的回覆。你能告訴我如何將項目工件上傳到本地存儲庫嗎?因爲在ProjA的build.gradle中添加了「apply plugin:'maven-publish'」之後,執行了「build」命令,並且無法找到它在本地機器中添加的位置。 – Pand005

+0

您需要先配置發佈插件。查看更新後的文章,瞭解maven-publish插件的最小配置。 – Hailstorm

0

如果您的項目位於同一位置,你可以有一個多構建項目。

說你有這些內容的根文件夾:

  • 一些根目錄
    • 項目一
      • project-a.gradle
      • SRC
    • 項目-B
      • project-b.gradle
      • SRC
    • build.gradle
    • settings.gradle

settings.gradle包含:

include 'project-a', 'project-b' 

project-b.gradle則依賴於項目A:

dependencies { 
    compile project(':project-a') 
} 

在此之後,項目將始終編譯和組裝前編制項目-B時,項目B和項目,一個jar jar文件將在類路徑中。

+0

我們的項目不在同一地點,但ProjB依賴於ProjA來編譯ProjB。我試過在settings.gradle中添加ProjA,並在ProjB中添加了「compile project(':ProjA')」。但ProjB無法構建依賴關係。 – Pand005

+0

您不能將依賴項放在不共處的項目上,以至於無法工作。你堅持要麼發佈到本地存儲庫,要麼通過那裏發佈它,要麼你可以編譯ProjA並將該jar放入ProjectB的lib文件夾中,然後引用它。 '庫'{flatDir dirs:'lib'}' '依賴項{compile':projectA_jar_name'//沒有jar擴展名只是名稱}' – jacobono

相關問題