我有一个使用 Gradle 版本 6.4 和 JDK 8 构建的项目。我正在尝试将 Gradle插件用于测试夹具( java-test-fixtures),但我对依赖项有一些问题。
根据上面链接的 Gradle 页面,该项目的结构应如下所示:
core-module
-- src
-- main
-- java
-- test
-- java
-- testFixtures
-- java
虽然该build.gradle.kts文件具有以下依赖项部分:
dependencies {
api("com.my.external.project:1.0")
// ... more API dependencies
testFixturesCompileOnly(project(":core-module"))
testFixturesApi("junit:junit:4.12")
// ... more test dependencies
}
现在,在 IntelliJ(我正在使用的 IDE)中,testFixtures/java源文件夹中的类可以查看源文件夹中的类main/java。所以我可以添加新的 Java 类testFixtures/java,这些类依赖于main. 但是,我将无法从外部库导入依赖项com.my.external.project:1.0。当我尝试运行 Gradle 任务时,问题得到确认compileTestFixturesJava。
我可以复制该dependencies部分中的条目;例如,我可以添加:
testFixturesImplementationOnly("com.my.external.project:1.0")
但这并不是我真正期望做的。特别是当我有几十个依赖项时。
我还可以在数组中定义依赖项并for-each在它们之上运行。不过,这不是最干净的解决方案。
是否有一个干净的解决方案允许testFixtures模块使用模块中声明的依赖项main?