首页 > 解决方案 > 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 的情况下进入)?如果不是,这里最简单的解决方案是什么?提前致谢!

标签: javamavenspring-bootgradle

解决方案


调用 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

推荐阅读