IntelliJ 如何知道目录是“源”还是“测试源”?如何始终将目录标记为“测试源”?
build.gradle 1
apply plugin: 'java'
apply plugin: 'idea'
idea {
module {
sourceDirs += file('src/main/java')
testSourceDirs += file('src/awesome-test/java')
}
}
使用“build.gradle 1”文件,src/awesome-test/java
被标记为“测试源”。
build.gradle 2
apply plugin: 'java'
apply plugin: 'idea'
idea {
module {
sourceDirs += file('src/main/java')
testSourceDirs += file('src/awesome-test/java')
}
}
sourceSets {
'awesome-test' {
java {
srcDir 'src/awesome-test/java'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}
但是,只要您添加引用此目录(“build.gradle 2”)的源集,src/awesome-test/java
就会被标记为“源”。
build.gradle 3
apply plugin: 'java'
apply plugin: 'idea'
idea {
module {
sourceDirs += file('src/main/java')
testSourceDirs += file('src/awesome-test/java')
}
}
sourceSets {
'awesome-test' {
java {
srcDir 'src/awesome-test/java'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}
task awesomeTest(type: Test) {
testClassesDir = sourceSets.'awesome-test'.output.classesDir
classpath += sourceSets.'awesome-test'.runtimeClasspath
}
如果我添加一个 Test
类型的任务,那么 src/awesome-test/java
会再次被标记为“test”来源'。
注释:IntelliJ 13.0.2,Gradle 1.9
最佳答案
"How does IntelliJ know if a directory is a 'source' or a 'test source'?"
Gradle API 告诉 IntelliJ 哪些目录被标记为源,哪些被标记为测试源。
关于你的例子:
- 此处全部清楚,来源和测试来源。
awesome-test
源集将src/awesome-test/java
定义为源。由于测试源路径包含源路径,这里不冲突。并且 gradle/IntelliJ 正确地将src/awesome-test/java
标记为源。awesome-test
源集被添加到测试任务中,很明显它没有被用作源,因此将其标记为测试源。
希望对您有所帮助。
关于java - IntelliJ 如何知道目录是 'source' 还是 'test source'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686930/