如何添加本地JAR文件到Maven项目中

导读:本篇文章讲解 如何添加本地JAR文件到Maven项目中,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

【版权申明】非商业目的可自由转载
博文地址:
出自:shusheng007

相关文章:
秒懂Java序列化与反序列化
秒懂 Java注解类型(@Annotation)
秒懂Java多线程

本文于2020年4月24日更新,文章以后会首发于自己的 博客小站

概述

有时我们需要将本地的jar文件添加到maven项目中,如果直接通过IDEA添加本地库引用的话,打包时候会丢失。网上中文教程的解决方法非常复杂,自己调查并实践,希望有此问题的同行不用再走弯路。

第一种方案:将jar安装到本地Maven仓库

第一种方案就是将jar包安装在你机器的本地 maven 库中,这种方案也有两种方式,手动和自动:

手动

手动运行maven命令将jar文件安装到本地maven库

第一步

首先确定你的电脑已经安装了Maven。在命令行中键入mvn -v命令,如果出现类似如下图所示,说明你的电脑已经安装了Maven,可进行第二步,如果没有请安装Maven

检查是否安装maven

第二步

安装jar到本地仓库

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

<path-to-file>: 要安装的JAR的本地路径 ./libs/json-simple-1.1.1.jar
<group-id>:要安装的JAR的Group Id
<artifact-id>: 要安装的JAR的 Artificial Id
<version>: JAR 版本
<packaging>: 打包类型,例如JAR

NOTE:最好在pom.xml文件所在的目录运行上述命令,个人经验不在根目录运行有时会安装不成功

第三步

使用,例如我安装了百度推送JAR到本地,我就可以在pom.xml文件中这样引用它了

<dependency>
	<groupId>com.baidu.app</groupId>
	<artifactId>bdpush</artifactId>
	<version>3.0.1</version>
</dependency>

这种方法弊端较大,程序的可维护性以及移植性较低。例如当你改变本地Maven仓库时需要重新安装。如果引用此JAR的项目是多人协调工作的项目,则每个人都要手动将其安装在自己的本地仓库。

自动

第二种方法是对第一种方法的改进。我们可以将此JAR文件放在工程里,然后使用maven插件自动将其安装到本地maven库。

例如我在项目根目录下有个libs的目录,里面存放我要安装的jar包 , 在pom.xml文件中使用maven-install-pluginMaven初始化阶段完成安装。

    <build>
        <plugins>
            <!--<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.5.2</version>
                <executions>
                    <execution>
                        <phase>initialize</phase>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                        <configuration>
                            <file>${basedir}/libs/json-simple-1.1.1.jar</file>
                            <groupId>com.sng.app</groupId>
                            <artifactId>json-simple</artifactId>
                            <version>1.1.1</version>
                            <packaging>jar</packaging>
                        </configuration>
                    </execution>
                </executions>
            </plugin>-->
        </plugins>
    </build>

${basedir}表示pom.xml文件所在的目录

第二种方案

第二种方法比较粗暴简单,具体为将依赖设置为系统域,通过完全路径引用。例如要引用的JAR文件在 <PROJECT_ROOT_FOLDER>/lib下,那么使用如下方法添加依赖

<dependency>
	<groupId>com.baidu.app</groupId>
	<artifactId>bdpush</artifactId>
	<version>3.0.1</version>
	<scope>system</scope>
	<systemPath>${basedir}/lib/bdpush-3.0.1.ja</systemPath>
</dependency>

${basedir}表示pom.xml文件所在的目录,例如你的JAR文件在D盘下的jarLibs里面,就将${basedir}替换为“D:/jarLibs”即可。

note: 这种方法我自己在SpringBoot项目中打包成war文件时,没有成功打包到里面,不推荐使用

第三种方案

第三种方案是将JAR文件安装在你项目中一个单独的maven仓库里,这个仓库随着项目走。

1:我们在**${basedir}pom.xml文件所在路径)目录下建立一个叫maven-repository**的本地仓库(就是建立一个叫这个名字的文件夹)。

2:使用如下命令安装我们要引用的JAR到此仓库中

mvn deploy:deploy-file 
-Dfile=<path-to-file>
-DgroupId=<group-id> 
-DartifactId=<artifact-id>
-Dversion=<version> 
-Dpackaging=jar 
-Durl=file:./maven-repository/ 
-DrepositoryId=maven-repository 
-DupdateReleaseInfo=true    

我们来举个例子

mvn deploy:deploy-file 
-Dfile=./libs/json-simple-1.1.1.jar 
-DgroupId=com.sng.app 
-DartifactId=json-simple 
-Dversion=1.1.1 
-Dpackaging=jar 
-Durl=file:./maven-repository/ 
-DrepositoryId=maven-repository 
-DupdateReleaseInfo=true 

安装成功后控制台会显示如下类似结果:
在这里插入图片描述
你项目中的本地maven库也会出现相应的文件,类似下面这样
在这里插入图片描述

3:在pom.xml中如下使用

申明仓库

<repositories>
    <repository>
        <id>maven-repository</id>
        <url>file:///${project.basedir}/maven-repository</url>
    </repository>
</repositories>

然后添加引用

 <dependency>
     <groupId>com.sng.app</groupId>
     <artifactId>json-simple</artifactId>
     <version>1.1.1</version>
 </dependency>

总结

推荐使用第三种方式,第三种方式比较灵活。例如等jar被发布到了远程仓库的话,直接将其从本地库删除即可。多个人协作的话也不需要各自维护。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/14805.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!