如何从项目依赖项中包含存根合同

How to include stubs contracts from project dependency

如何定义项目依赖项以包含 -stubs jar?

例如我有一个多模块项目。

我有包含所有存根的合同项目。

然后在项目a中我做

implementation(project(":contracts"))

这不会将存根 jar 放在 class 路径上。

如何指定项目依赖项以引入存根 jar?

好的,我唯一能做到的方法如下。

在合同模块中build.gradle.kts(这是使用 kotlin DSL):

val stubs by configurations.creating {
  isCanBeConsumed = true
  isCanBeResolved = false
}


artifacts {
  add("stubs", tasks.verifierStubsJar.get())
}

那么在消费者端:

testImplementation(project(":libs:contracts", "stubs"))

这里使用 testImplementation 很重要。如果只做runtime,contract module中的jar需要prebuilt。使用 testImplementation 强制在您构建项目时构建依赖项(即就像您在执行测试时所做的那样)