New sourceSet by gradle cannot be seen in Eclipse

梦想与她 提交于 2020-07-06 19:18:38

问题


I have created additional source set called "integration-test" in my gradle project. Ewerything works fine, but eclipse cannot see dependency classes defined exactly for this source set.

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'
    }

When i build this project by command "build gradle", project is build, the only problem is with eclipse. If I change dependency 'org.springframework:spring-test:4.1.7.RELEASE' from "integrationTestCompile" to "testCompile", problem is gone.


回答1:


It is a little late to answer your question, but I just found a solution to this, since I had the exact same problem.

Adding this:

eclipse {
    classpath {
        plusConfigurations.add configurations.integrationTestCompile
        plusConfigurations.add configurations.integrationTestRuntime
    }
}

to the gradle file solved the problem. I hope it does the same for you.




回答2:


An approach that I found that worked really well for me is this test sets plugin: https://plugins.gradle.org/plugin/org.unbroken-dome.test-sets

It made it really easy to add integration tests to my module. And it works with the eclipse plugin automatically.



来源:https://stackoverflow.com/questions/31775645/new-sourceset-by-gradle-cannot-be-seen-in-eclipse

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!