spring-boot - 在 Springboot Maven 项目中,如何从另一个 Jar 中引用?
问题描述
我有一个 SpringBoot Maven 项目。我依赖于另一组库。目前指向他们的存储库路径,将其下载到 .m2 存储库并使用。
但是存储库网站不可靠。所以我想将依赖库作为 JAR 的一部分打包到资源文件夹中。将罐子放入资源文件夹后。如何获取类型/库的引用?
目前:
<dependencies>
<dependency>
<groupId>org.dcm4che</groupId>
<artifactId>dcm4che-core</artifactId>
<version>5.23.1</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>www.dcm4che.org</id>
<name>dcm4che Repository</name>
<url>https://www.dcm4che.org/maven2</url>
</repository>
</repositories>
解决方案
您可以将所有库放在项目中或本地某个文件夹中的单个文件夹中。然后,您可以将它们添加到您的 Maven POM 中。
假设您将所有 jar 文件放在一个名为libs
基础项目目录的文件夹中。然后,您可以在 maven POM 中添加类似于以下内容的内容。
<groupId>com.abc.xyz</groupId>
<artifactId>my-artifact-id</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/libs/my-jar-name.jar</systemPath>
您需要使用范围system
。摘自Maven网站,
范围:系统 - 此范围类似于提供的范围,不同之处在于您必须明确提供包含它的 JAR。工件始终可用,不会在存储库中查找。
如果您进一步阅读,它还提到这已被弃用。因此,它是一个不错的快速修复或 hack,但最好的办法是按照其他人的建议设置一个存储库管理器。
推荐阅读
- list - prolog中列表的运行长度解码?
- laravel - Vuejs + Laravel:如何计算记录
- ios - MessageFilterExtension 也可以过滤 watchOS 上的消息吗?
- flutter - 同一列中的多个 GridView 并将它们一起滚动
- javascript - 将变量从 php 传递到 javascript 函数时出错
- elasticsearch - ElasticSearch:高基数聚合断路器
- openssh - 我可以使用 UID 而不是用户名进行 SSH 吗?
- css - 是否可以在纯 css 中创建一个使链接出现的按钮,直到我们单击它?
- javascript - 如何迭代两个数组并产生唯一的 y 坐标
- r - 如何在 R 中解决这个二次优化问题?