java - 通过实现应用程序提供的依赖项的 Java 库
问题描述
我正在使用 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
配置中使用它。
推荐阅读
- bit-manipulation - 如何根据计算 t = ab 设置 CF(进位标志),其中 a 和 b 是无符号整数
- javascript - Javascript,动态更改 Video-Url - 视频 URL 已设置/仅显示占位符海报
- android - 找不到 aapt2-4.0.0-6051327-linux.jar (com.android.tools.build:aapt2:4.0.0-6051327)
- python - 在python中拟合二维函数
- ipad - SwiftUI Popover 未检测到表单
- java - 来自多个实体的 Crudrepository 元组
- swift - 通过 swift 枚举约束泛型类型
- scala - 有没有办法使用 Gradle 中的 Scala 3 编译器(Dotty)?
- php - 每个表格行上的弹出框和内容
- android-studio - 当我将小部件从颤动单击到检查器时,如何将功能设置为自动转到该代码?