在build.gradle中具有apply插件的等级:'java'。该文件将创建一个.jar文件,并且测试任务正在运行junit测试:
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.12'
}
这正在工作。但是为了确保公共API测试可与生成的.jar文件一起使用,我希望'test'任务正在对classpath中build / libs文件夹中的生成.jar文件而不是生成.class文件运行测试。从文件夹构建/类在类路径中。
不工作,因为sourceSets设置为全局:
tasks.withType(Test) {
sourceSets {
main {
java {
exclude '**'
}
}
}
}
部分工作:多项目(测试和jar分为两个gradle项目):
dependencies {
compile project(":jar_project")
testCompile 'junit:junit:4.12'
}
在这种情况下,将使用jar_project.jar,但程序包私有测试也将正确执行。
有人知道如何将.jar作为依赖项来运行测试,而忽略.class文件吗?
谢谢,纸浆
答案 0 :(得分:0)
问题在于测试任务不依赖于jar任务,这之所以有意义是因为应该将jar打包在类中,所以测试应该没有理由依赖于那个jar。
您可以通过以下方式强制依赖:
test {
dependsOn jar
doFirst {
classpath += jar.outputs.files
}
}
现在jar将在测试类路径上