首页 > 解决方案 > 通过实现应用程序提供的依赖项的 Java 库

问题描述

我正在使用 Gradle 和两个独立的项目,其中一个项目将成为一个库,我想将它编译成一个可实现的 jar,它可以在另一个项目(应用程序)以及其他项目中使用。

在我的库中,我依赖于 Java Boot 和一些 Google 库。我需要在我的库的 Gradle 文件中指定什么,在编译时 Java Boot 和其他库不会编译到该 jar 中,从而导致其大小变大?

我的应用程序实现我的库 jar 应该提供这些库。在这种情况下,我是否需要在我的应用程序的 Gradle 文件中指定任何特定内容?

标签: javagradledynamicjarlinker

解决方案


您可以将库项目的依赖项定义为compileOnly

dependencies {
  compileOnly group: 'com.google.guava', name: 'guava', version: '27.0-jre'
}

这样,您的依赖项将不会被导出,也不会被打包到任何工件中。

如果您在测试中需要这种依赖关系,您也需要在testImplementation配置中使用它。


推荐阅读