我有一个使用 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
?