如何将本地jar文件添加到Maven项目?| Java Debug 笔记

1,123 阅读2分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接

提问:如何将本地jar文件添加到Maven项目?

如何在项目的库源代码中直接添加本地jar文件(尚未成为Maven存储库的一部分)?

高分回答:

很多的知识点,真的需要写出来才会掌握!!! \color{purple}很多的知识点,真的需要写出来才会掌握!!!{~}


如下所示,将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文件的适当目录结构。

以我的示例为例:我的主项目位于masterprojectlocation上,subproject1在上{master_project}location上,subproject1在上{master_project}/${subproject1}。

然后,我在中创建一个Maven存储库${master_project}/local-maven-repo。

在位于的subproject1中的pom文件中masterproject/{master_project}/{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项目,当然更有效的方式是添加的您公司的私有仓库里

欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!! \color{red}欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!{~}

有最新、优雅的实现方式,我也会在文末写出我对本问答的见解 \color{red}有最新、优雅的实现方式,我也会在文末写出我对本问答的见解{~}

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️