我正在将一个大型项目从Maven转换为Gradle。除了一个项目之外,所有项目都使用java-library
插件。
其中一个项目,我们称之为build-info-impl
,创建一个.jar
。带有build.properties
文件的文件,包含当前日期,提交哈希和其他属性。当然,每当构建发生时,日期都会发生变化,因此任务标记为outputs.upToDateWhen { false }
。
其他项目取决于使用build-info-impl
依赖关系的implementation
dependencies {
implementation project(':mqm-server-root:mqm-infra-common:mqm-build-info')
}
问题
当我构建项目时,所有子项目的test
任务总是运行。当我添加--info
时,我看到以下输出:
Executing task ':server-root:pom:platform-services:platform-services-impl:test' (up-to-date check took 0.017 secs) due to:
Input property 'classpath' file C:\Users\user\Documents\dev\project\gradle\Server\infra-common\build-info-impl\build\libs\build-info-impl-1.24.9-SNAPSHOT.jar has changed.
据我所知,这意味着.jar
文件确实进入了类路径,即使Java-Library plugin documentation clearly state:
在实现配置中找到的依赖关系 另一方面,不要暴露给消费者,因此不会泄漏 消费者的编译类路径
如何调试.jar
文件在类路径上结束的原因?