2016-04-18 57 views
2

使用其他模塊的資源我有項目A和項目B如何模塊可以使用gradle這個多模塊

項目的單位testings(測試目錄下)需要使用資源文件,這在項目b主/資源DIR。

gradle.build上項目答:項目B

dependencies { 
.. testCompile project(':web') 
} 

gradle.build:

task testJar(type: Jar) { 
    classifier 'resources' 
    from sourceSets.main.resources 
} 

仍然失敗。 我不知道我錯過了什麼?

謝謝, 射線。

回答

3

當你在一個項目上添加一個依賴這樣的:

testCompile project(':B') 

你依賴於項目B,這通常是默認的jar產生的默認神器。如果你想依賴於一個自定義的jar,比如一個測試jar,一個資源jar或者一個胖jar,那麼你必須明確地指定它。您可以添加自定義文物的配置,並依賴於配置,而不是,如下圖所示:

在B的的build.gradle:

configurations { 
    foo 
} 

task testJar(type: Jar) { 
    classifier 'resources' 
    from sourceSets.main.resources 
} 

artifacts { 
    foo testJar 
} 

,然後用它在A作爲:

dependencies{ 
    testCompile project(path: ':B', configuration: 'foo') 
} 

要驗證,您可以將此任務添加到:

task printClasspath()<<{ 
    configurations.testCompile.each{println it} 
} 

它打印:

${projectRoot}\B\build\libs\B-resources.jar 
+0

工作。謝謝。你能解釋一下邏輯嗎? – rayman

+1

增加了一些文字,讓我知道如果這對你有意義。 – RaGe

+0

thx。你爲什麼不得不在配置{..}下包裝它? – rayman

相關問題