gradle 的新 sourceSet 在 Eclipse 中看不到
New sourceSet by gradle cannot be seen in Eclipse
我在我的 gradle 项目中创建了名为 "integration-test" 的附加源集。 Ewerything 工作正常,但 eclipse 看不到为这个源集定义的依赖项 类。
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
sourceSets {
integrationTest {
java {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/integration-test/java')
}
resources.srcDir file('src/integration-test/resources')
}
}
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestRuntime.extendsFrom testRuntime
}
dependencies {
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-all:1.10.19'
integrationTestCompile 'org.springframework:spring-test:4.1.7.RELEASE'
compile 'org.springframework:spring-context:4.1.7.RELEASE'
compile 'org.springframework:spring-core:4.1.7.RELEASE'
}
task integrationTest(type: Test) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
outputs.upToDateWhen { false }
}
check.dependsOn integrationTest
integrationTest.mustRunAfter test
version = '1.0'
}
当我通过命令 "build gradle" 构建这个项目时,项目正在构建,唯一的问题是 eclipse。如果我将依赖项 'org.springframework:spring-test:4.1.7.RELEASE' 从 "integrationTestCompile" 更改为 "testCompile",问题就消失了。
现在回答你的问题有点晚了,但我刚刚找到了解决办法,因为我遇到了完全相同的问题。
添加这个:
eclipse {
classpath {
plusConfigurations.add configurations.integrationTestCompile
plusConfigurations.add configurations.integrationTestRuntime
}
}
到gradle文件解决了这个问题。我希望它对你也一样。
我发现对我来说非常有效的一种方法是这个测试集插件:https://plugins.gradle.org/plugin/org.unbroken-dome.test-sets
这使得向我的模块添加集成测试变得非常容易。并且自动配合eclipse插件使用。
我在我的 gradle 项目中创建了名为 "integration-test" 的附加源集。 Ewerything 工作正常,但 eclipse 看不到为这个源集定义的依赖项 类。
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
sourceSets {
integrationTest {
java {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/integration-test/java')
}
resources.srcDir file('src/integration-test/resources')
}
}
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestRuntime.extendsFrom testRuntime
}
dependencies {
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-all:1.10.19'
integrationTestCompile 'org.springframework:spring-test:4.1.7.RELEASE'
compile 'org.springframework:spring-context:4.1.7.RELEASE'
compile 'org.springframework:spring-core:4.1.7.RELEASE'
}
task integrationTest(type: Test) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
outputs.upToDateWhen { false }
}
check.dependsOn integrationTest
integrationTest.mustRunAfter test
version = '1.0'
}
当我通过命令 "build gradle" 构建这个项目时,项目正在构建,唯一的问题是 eclipse。如果我将依赖项 'org.springframework:spring-test:4.1.7.RELEASE' 从 "integrationTestCompile" 更改为 "testCompile",问题就消失了。
现在回答你的问题有点晚了,但我刚刚找到了解决办法,因为我遇到了完全相同的问题。
添加这个:
eclipse {
classpath {
plusConfigurations.add configurations.integrationTestCompile
plusConfigurations.add configurations.integrationTestRuntime
}
}
到gradle文件解决了这个问题。我希望它对你也一样。
我发现对我来说非常有效的一种方法是这个测试集插件:https://plugins.gradle.org/plugin/org.unbroken-dome.test-sets
这使得向我的模块添加集成测试变得非常容易。并且自动配合eclipse插件使用。