本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接
提问:如何将本地jar文件添加到Maven项目?
如何在项目的库源代码中直接添加本地jar文件(尚未成为Maven存储库的一部分)?
高分回答:
如下所示,将JAR安装到本地Maven存储库中:
mvn install:install-file \
-Dfile=<path-to-file> \
-DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<packaging> \
-DgeneratePom=true
其中每个都指:
<path-to-file>:要加载的文件的路径,例如→ c:\kaptcha-2.3.jar
<group-id>:文件应注册的组,例如→ com.google.code
<artifact-id>:文件的工件名称,例如→ kaptcha
<version>:文件的版本,例如→ 2.3
<packaging>:文件的包装,例如→ jar
高分回答:
首先,我想把这个答案归功于一个匿名的Stack Overflow用户-我很确定以前在这里看到过类似的答案-但现在找不到了。
将本地JAR文件作为依赖项的最佳选择是创建本地Maven存储库。这样的存储库只不过是带有pom文件的适当目录结构。
以我的示例为例:我的主项目位于{master_project}/${subproject1}。
然后,我在中创建一个Maven存储库${master_project}/local-maven-repo。
在位于的subproject1中的pom文件中{subproject1}/pom.xml,需要指定存储库,该存储库将文件路径作为URL参数:
<repositories>
<repository>
<id>local-maven-repo</id>
<url>file:///${project.parent.basedir}/local-maven-repo</url>
</repository>
</repositories>
可以像其他任何存储库一样指定依赖项。这使您的pom存储库独立。例如,一旦所需的JAR在Maven Central中可用,您只需要将其从本地存储库中删除,它将从默认存储库中提取。
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.servicebinder</artifactId>
<version>0.9.0-SNAPSHOT</version>
</dependency>
最后但并非最不重要的事情是使用-DlocalRepositoryPath开关将JAR文件添加到本地存储库,如下所示:
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
-Dfile=/some/path/on/my/local/filesystem/felix/servicebinder/target/org.apache.felix.servicebinder-0.9.0-SNAPSHOT.jar \
-DgroupId=org.apache.felix -DartifactId=org.apache.felix.servicebinder \
-Dversion=0.9.0-SNAPSHOT -Dpackaging=jar \
-DlocalRepositoryPath=${master_project}/local-maven-repo
安装JAR文件后,即可将您的Maven存储库提交到代码存储库,并且整个设置与系统无关。(GitHub中的工作示例)。
我同意让JAR致力于源代码存储库不是一个好习惯,但是在现实生活中,快速而又肮脏的解决方案有时比成熟的Nexus存储库托管一个您无法发布的JAR更好。
文章翻译自 yl2gl72eozkinivz3vc6swkesy-ac4c6men2g7xr2a-translate.translate.goog/questions/4…
作者建议:有些时候的确需要将本地jar包添加到maven项目,当然更有效的方式是添加的您公司的私有仓库里
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️