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
再次被标记为'测试源'。
注意: IntelliJ 13.0.2,Gradle 1.9
答案 0 :(得分:0)
“IntelliJ如何知道目录是'源'还是'测试 源'?“
Gradle API告诉IntelliJ哪些目录被标记为源,哪些目录被标记为测试源。
关于你的例子:
awesome-test
源集定义src/awesome-test/java
作为来源。由于测试源路径包含源路径,因此此处不存在冲突。并且gradle / IntelliJ正确标记src/awesome-test/java
作为源。awesome-test
sourceset被添加到测试任务中,因此显然它没有被用作源,因此将其标记为测试源。希望它有所帮助。
答案 1 :(得分:0)
过去,IntelliJ使用IdeaModel配置来设置源和测试目录。基于我打开的IntelliJ Ticket,我相信IntelliJ 13.1.0将再次使用IdeaModel配置。