我有一个多项目设置(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