Java 库,其依赖项是通过实现应用程序提供的

标签 java gradle dynamic jar linker

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

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

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

最佳答案

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

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

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

如果您在测试中需要此依赖项,您还需要将其添加到 testImplementation 配置中。

关于Java 库,其依赖项是通过实现应用程序提供的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56154045/

相关文章:

java - 使用正则表达式替换字符组合java

Gradle,任务类型 : Exec - commandLine not work in onLast

android - 是否可以从Android获取不带后缀的versionName?

java - 如何在同一行中将多个依赖项分组-Gradle

c++ - 如何从C++动态调用汇编函数?

javascript - Angular - 如何通过路由器将信息传递到 Controller ?

java - 单元测试等于和哈希码 - 一个复杂的故事

Java 事件检测屏幕

java - 如果想在 RCP 应用程序开发中添加本地 p2 更新站点,如何使用 Tycho 在 pom.xml 的 <repository> 部分中指定 <id> 和 <url>?

javascript - 如何使用angularJS动态地将脚本添加到index.html?