我有一個多項目設置(ProjectB - > ProjectA),我使用flatDir在每個項目中指定一個lib目錄。我的gradle配置在構建期間沒有使用正確的類路徑
項目A:
repositories {
flatDir name: 'localRepository', dirs: 'lib'
}
dependencies {
compile group: 'com.google.guava', name: 'guava', version: 'r08'
compile group: 'com.miglayout', name: 'miglayout', version: '3.7.4'
testCompile group: 'junit', name: 'junit', version: '4.+'
testCompile group: 'org.easymock', name: 'easymock', version: '2.5.2'
}
項目B:
repositories {
flatDir name: 'localRepository', dirs: 'lib'
}
dependencies {
compile group: 'yan', name: 'yan', version: '5.0.2'
runtime group: 'yan', name: 'jfunutil', version: '5.0.2'
compile project(':ProjectA')
testCompile group: 'junit', name: 'junit', version: '4.+'
testCompile group: 'org.easymock', name: 'easymock', version: '2.5.2'
}
當我使用gradle dependencies
爲項目B,將產生正確的依存列表,示出傳遞依賴從項目A(例如,包括番石榴-R08)。但是,如果爲gradle build
,則用於javac的實際類路徑只包含ProjectB的直接依賴項以及構建ProjectA生成的jar。
另一個煩惱是它似乎爲testCompile,我不得不重新聲明依賴項目B的junit,否則gradle dependencies
將不會成功。
任何指針非常讚賞 - 我是新來的Gradle。
感謝您的建議,但也許我簡化了太多的東西。這個想法是ProjectA是一個通用庫。它包含我的常用工具等,並且我有3個其他項目(應用程序)依賴於ProjectA。項目A應完全獨立於其他項目,另外項目(項目B,C,D)彼此獨立。這就是爲什麼我不那麼熱衷於全球網絡概念以及分層次的項目結構。 (儘管我並未完全否認這一點 - 所以非常感謝你的努力!) – zorgbargle 2011-05-17 18:22:33