2014-10-22 135 views
0

我有一個gradle多項目。 在projectA中,我有一個包含一些類的packageA(以及一些其他包,只在projectA中使用)。從另一個項目中選擇一個包

在另一個projectB中,我只想使用projectA中的packageA。

我在項目B使用以下配置:

dependencies { 
    compile project(':ProjectA')  // I understand, this is to much 
} 

在爲項目B生成的JAR我現在從了projectA所有的類,但我不知道 如何排除不需要的類(或僅包括包含這個類的packageA)。

有人可以幫助我,如何配置。 感謝

烏韋/德國

回答

1

爲@Opal說,分裂出來爲單獨項目的依賴關係,或者如果你想保持僅有2項目,只能靠一些類,然後把一個依賴從項目B到你可以做像這樣的了projectA產生假象:

在了projectA在其中創建神器:

configurations { 
    myCustom.extendsFrom runtime 
} 

task customJar(type: Jar) { 
    classifier "custom" 
    from sourceSets.main.output 
    // now the packages you want to include in the artifact 
    include 'com/your/domain/package1/*' 
    include 'com/your/other/stuff2/*' 
} 

artifacts { 
    myCustom customJar 
} 

,然後在項目B,你可以取決於生成的構件有:

dependencies { 
    compile project(path: ':projectA', configuration: 'myCustom') 
} 

這適用於任何類型的生成類的,所以你可以使用「extendsFrom testRuntime」和「從sourceSets.test.output」,幷包含路徑來測試類,如果這是你想要依靠的不是主類測試輸出關係。

+0

不錯,學到了東西;) – Opal 2014-10-22 19:12:43

+0

謝謝,這對我來說非常完美。我之前看到過類似的例子,但無法正確創建customJar任務。由於 – 2014-10-22 21:00:48

+0

@ ula.uvula高興能幫上忙,我花了一段時間才能得到我的周圍是如何工作的負責人。如果你對此感到高興,你能否接受這個問題,請回答:) – 2014-10-23 07:59:22

0

這種類過濾你正在試圖做的是不是一個好主意。而是將需要在AB中使用的類/程序包分隔到項目C(或common),並將其作爲依賴項添加到兩個項目中。

相關問題