【发布时间】:2016-02-06 02:13:58
【问题描述】:
我正在使用 maven 和 aspectj 插件并且很好,最近我搬到了 gradle,我已经有了使用方面构建/编译的配置,并且工作正常,但集成测试不能正常工作。 我有以下配置
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir "src/main/resources/"
}
}
integrationTest {
java {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/test/it')
}
resources.srcDir file('src/test/resources')
}
generated {
java {
srcDirs = [
"src/main/generated"
]
}
compileClasspath += sourceSets.main.output
}
}
但这些方面在集成测试中未编译/正常工作。我试图做的是以下配置
compileIntegrationTestJava{
sourceCompatibility="1.7"
targetCompatibility="1.7"
dependsOn generateQueryDSL
source generateQueryDSL.destinationDir
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileJava")
doLast{
ant.taskdef( resource:"org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: configurations.ajc.asPath)
ant.iajc(source:"1.7", target:"1.7",
destDir:sourceSets.integrationTest.output.classesDir.absolutePath, maxmem:"512m", fork:"true",
aspectPath:configurations.aspects.asPath,
sourceRootCopyFilter:"**/.svn/*,**/*.java",classpath:configurations.compile.asPath){
sourceroots{
sourceSets.main.java.srcDirs.each{
pathelement(location:it.absolutePath)
}
sourceSets.integrationTest.java.srcDirs.each{
pathelement(location:it.absolutePath)
}
}
}
}
}
我得到了这个错误。
[ant:iajc] [error] build config error: bad sourceroot: \src\integrationTest\java
如果我将sourceSets.integrationTest.java.srcDirs.each 行更改为sourceSets.test.java.srcDirs.each,则/src/test/it 下的IT 不会被编译并且不会移动到正确的包中,但是如果我将我的IT 测试放在/src/test/java 下编译正确。
我想知道如何将正确的sourceSets 指向src/test/it 以及如何将一些类添加到类路径而不是添加
sourceroots{
sourceSets.main.java.srcDirs.each
因为这会将整个类添加到clasess/test/ 目录中
如果您有任何链接或指南,将不胜感激
【问题讨论】:
-
嗨 Koitoer,你有没有得到这个?因为这也是我的问题。