2015-08-13 205 views
2

在gradle multi project(java)中,可以共享源代碼,以便每個項目都可以訪問並編譯它們?Gradle多項目 - 共享項目之間的源代碼

例如,分別包含單個java類的子項目「鼠標」,「貓」,「狗」分別爲Mouse.javaCat.javaDog.java。這些類別中的每一個都延伸至Animal.java

一個需要注意的是,任何給定的子項目(如,「鼠標」)正在修建的時候,它定義了一些編譯時的依賴關係(從行家中心),它要求Animal.java被使用的一些依賴編譯。其他項目也是如此。所以,我無法編譯並激活Animal.java,然後使用該jar作爲3個項目的依賴項。動物必須與依賴項目的來源一起重新編譯。結果應該是mouse.jar,cat.jar和dog.jar,每個都在它們各自的項目構建目錄中(像往常一樣),每個都包含它們的Animal.class版本。

我知道這個例子不是很直觀(因爲Animal應該足夠通用,可以獨立編譯)。這是我能找到的最好的模擬難以解釋的場景,我試圖解決。

在Gradle中可以這樣做嗎?

謝謝。

+0

也許這個鏈接可以幫助(很顯然,作爲一個搖籃noobie,它並沒有幫助我,但聽起來不錯)https://docs.gradle.org/current/userguide/multi_project_builds.html – Danielson

+0

謝謝@Danielson。我確實在這3個項目的父項目中使用了通用配置(實際上大約有12個子項目),並且效果很好。但是我沒有看到有關如何共享通用代碼的建議,並且每次都用不同的依賴項重新編譯它。 – Legato

+0

我希望我可以幫助,我試過(但顯示錯誤)。你怎麼指'分享'?和其他人?那麼你需要將它部署到一個通用服務器 – Danielson

回答

1

用sourceSets解決了這個問題。新增父項目主要來源集的子項目:

例如,加入到項目中「鼠標」的build.gradle

sourceSets { 
    main.java.srcDir project(':animal').sourceSets.main.java 
} 
相關問題