gradle将jar添加到classpath,即使它具有`implementation` dependnecy

时间:2017-10-29 12:39:49

标签: java gradle

我正在将一个大型项目从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文件在类路径上结束的原因?

0 个答案:

没有答案