java - Spring Boot、Gradle 和非 Maven 依赖项
问题描述
Java 8、Spring Boot 1.5.8 和 Gradle 4.6 在这里。
我正在构建一个 Spring Boot 应用程序并使用内置的 Gradle 任务为其生成一个独立的、可执行的“胖”jar。另一个团队生成了一个依赖项 JAR,我需要将其合并到我的项目中。
几个月后,我们将建立一个二进制存储库,他们将发布其库的新版本,我将从中解析/提取。但就目前而言,我坚持使用有点苛刻的分发模型,他们通过电子邮件向我发送一个版本,我需要弄清楚如何让它与 Gradle 一起工作以将它放在类路径上。
所以...
我的项目位于我的机器上/home/myuser/workspace/my-spring-boot-app
。他们已经通过电子邮件向我发送了他们库的第一个版本,比如说,some-lib-0.1.0.jar
我已经将它下载到了,比如说/home/myuser/some-lib-0.1.0.jar
)。
另一个复杂的(也是重要的!)因素是这个 JAR 没有pom.xml
文件(还)。他们只是在他们的电子邮件中包含了我已经包含在我的应用程序build.gradle
文件中的所有依赖项的列表。所以我不认为这个 JAR 的依赖会是一个问题,但希望你们都知道没有pom.xml
它,所以不确定这是否意味着我需要编写自己的,等等......
我想象这里最简单的解决方案是将库安装/导入到我的本地 Maven/Gradle 存储库(无论mavenLocal()
从哪里解析)?一旦它在那里导入/安装,我可以添加mavenLocal()
到我的列表中repositories { ... }
并将其添加为compile
依赖项,对吗?
如果是这样,我如何完成第一部分(在mavenLocal()
没有 POM 的情况下进入)?如果不是,这里最简单的解决方案是什么?提前致谢!
解决方案
调用 Maven 目标install:install-file
(即mvn install:install-file
在命令行上)
https://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html
你设置generatePom
为真。所以像
mvn install:install-file -DgeneratePom=true -DartifactId=somelib -DgroupId=com.somecompany -Dversion=0.1.0
推荐阅读
- flutter - 小部件名称作为 Flutter 中的变量
- python - 在 Altair 的条形图上使用颜色似乎可以防止比例上的 zero=False 产生预期效果
- node.js - MongoDB 查询工作,但不适用于 Node.js Express Mongoose
- swift - 为 Mac 版 Release 存储本地文件/资源的 Swift 最佳方式
- firebase - 如何在flutter中过滤对firestore的查询?
- mysql - Debezium 引擎没有捕捉到我的 MySQL 数据库的变化
- c++ - 像素着色器中的 SamplerState 问题
- firebase - 是否可以将嵌套的 Kotlin 类转换为包含 Firestore 中子集合的集合?
- excel - 尝试使用 VBA Excel 创建表块
- google-cloud-platform - 将 VPN 隧道从项目 A 移动到项目 B - GCP