【发布时间】:2014-09-18 23:35:59
【问题描述】:
我遇到了一个奇怪的场景,Gradle 似乎正在尝试编译位于我设置为依赖项的 jar 文件中的“.java”文件。我做这样的事情:
dependencies {
testCompile fileTree(dir: './libs', include: ['*JarResources/Java/*.jar'])
testCompile group: 'junit', name: 'junit', version: '4.11'
}
...而且我有一个相当大的 jar 依赖项列表。当我尝试运行我的测试时,它在编译阶段失败,在该阶段它找不到隐藏在 jar 文件中的 Java 文件的符号。其中一些 jar 依赖项与它们的源一起打包,位于相应的 .class 旁边。我尝试在源集中使用包含过滤器无济于事。
sourceSets {
main {
java {
exclude 'com/mypkg/other/**'
}
}
test {
java {
include 'com/mypkg/test/**'
}
}
}
我可以使用 IntelliJ 13 中的 gradle-aware make 毫无问题地运行测试(这里我右键单击单元测试并运行它们),因为它足够聪明,可以构建依赖类路径而不将文件传递给 Javac 但是不知何故,相同的 build.gradle 从命令行失败了。这是 Gradle 在 Jar 文件中找到依赖项时自动将依赖项传递给 javac 的已知问题吗?
【问题讨论】:
标签: java intellij-idea gradle