当前位置: 首页 > 知识库问答 >
问题:

Spring Boot、Gradle和非Maven依赖项[副本]

蔚学林
2023-03-14

这里是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()添加到我的存储库列表{...}中,并将它作为Compile依赖项添加,对吗?

如果是的话,我如何完成第一部分(在没有POM的情况下将其导入MavenLocal())?如果没有,最简单的解决方案是什么?提前道谢!

共有1个答案

谢清野
2023-03-14

调用Maven目标install:install-file(即命令行上的mvn install:install-file)

https://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

并将generatepom设置为true。所以像这样的事情

mvn install:install-file -DgeneratePom=true -DartifactId=somelib -DgroupId=com.somecompany -Dversion=0.1.0
 类似资料:
  • 我在Netbeans-8工作 我正在构建两个项目。Project1是Project2的依赖项。 如果我在两个项目中都做了更改1 我碰巧经常更改项目1。在我的IDE中使用maven之前,我习惯于构建一个依赖项目,也构建它的依赖项。我的意思是这就是构建系统中的依赖项的全部含义... 如何解决这个问题,以便project2上的“使用依赖项构建”也构建project1?

  • 我创建了一个Maven项目(可重用库),该项目有许多依赖项(编译时和运行时),它们也可以过渡地依赖于其他许多依赖项。在maven中,我可以在pom中添加依赖项。xml及其可传递依赖关系将自动处理。所以,我将毫无问题地运行。 现在,我有一个非Maven(基于Ant的)项目,上面创建的库(Maven Lib)将使用它。 在这种情况下,运行时间

  • 当试图在eclipse上运行spring boot maven项目时,会出现错误。“启动配置附件引用不存在的项目演示2.”请任何人帮忙修正那个错误。

  • 我有一个使用Gradle作为构建工具的项目和第二个使用Maven的POM的子项目。我没有在子项目上更改构建工具的自由。 我想要实现的是将我的项目添加到Maven POM中,作为我的Gradle项目的依赖项。 其中root(当前目录)是我的Gradle项目,并包含,Maven项目位于下,POM文件就在该目录下。 我在我的< code>build.gradle文件中尝试了这些变化: 第一次尝试: 第二

  • 我有一个Maven多模块项目,在主pom中将一些旧版本的Spring Boot依赖项设置为父项。xml。所有子模块都从这个主pom继承Spring Boot依赖项。xml。 这很好,但是在一个新的子模块(也是多模块)中,我想使用最新的Spring引导版本,而不改变项目中正在使用的版本(以及所有依赖项)。 有没有办法巧妙地覆盖从父版本派生的Spring引导版本(及其所有依赖项),并在子模块中使用不同

  • 我正在尝试将我的项目从gradle构建转换为maven构建。我可以从maven生成war文件,但是maven中的一些依赖项JAR的版本与Gradle的版本不同。 问题1:为什么上述罐子的版本不一样? 问题2:为什么使用Gradle构建的战争有“cglib-2.2.1-v20090111.jar”,而使用Maven构建的战争却没有?