Gradle 在测试运行期间排除本地 jar

Gradle exclude local jar during testRunTime

我的情况如下...我的 Gradle jar 目标需要 javaee-api-*.jar 作为 compile 时间

dependencies {

    compile fileTree(dir: '../lib', include: ['/**/javaee-api-*.jar'])

}

但是,在 Gradle test 执行期间,我需要 dependencies 如下...

dependencies {

    compileOnly fileTree(dir: '../lib', include: ['/**/javaee-api-*.jar'])

}

我应该如何在 testRunTime 期间排除一个 jar?

我从 project.sourceSets.test.runtimeClasspath.filter

中过滤掉了 javaee-api-*.jar

添加 javaee-api-*.jar 作为编译依赖项

dependencies {

    compile fileTree(dir: '../lib', include: ['/**/javaee-api-*.jar'])

}

   sourceSets {

      ....
    
    test {
        runtimeClasspath = project.sourceSets.test.runtimeClasspath.filter {
            !it.path.endsWith('oraclejavaee/javaee-api-6.0.jar')
        }
        java.srcDir project(':test-framework').file("src")
        resources.srcDirs project(':test-framework').file("config")
    }
  }

并在

中添加dependOn
test {
    dependsOn(testClasses)
    useTestNG() { //Tells Gradle to use TestNG
        useDefaultListeners = true // Tells TestNG to execute its default reporting structure
        suites 'test/testng.xml' //location of our suite.xml
    }
}