一、maven安装
在需要jar的项目的根目录执行下命令:
mvn install:install-file -DgroupId=com.baidu.boot -DartifactId=net-base-utils -Dversion=2.6.8 -Dfile=C:\Users\Desktop\net-base-utils-2.6.8-SNAPSHOT.jar -Dpackaging=jar -DgeneratePom=true
DgroupId:是项目组织唯一的标识符,自己随便起名
DartifactId:项目的唯一的标识符,自己可以随便起
Dversion:项目版本
Dfile:jar包路径(绝对路径)
-
DgeneratePom:是否生成pom文件,ture:生成,false:不生成;
执行成功后,在本地maven的仓库按照DgroupId路径查找就可以了。
二、本地项目中引入
1、在项目的resource目录下新建lib文件夹,然后将你本地的jar包copy到里面;
2、在maven的配置如下:
<dependencies>
<dependency>
<groupId>com.baidu.boot</groupId>
<artifactId>net-base-utils</artifactId>
<version>2.6.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/net-base-utils-2.6.8.jar</systemPath>
</dependency>
</dependencies>
3、<scope>system</scope> 问题
maven 的<scope>的scope属性可以为system,然后通过system来引用,不过不推荐使用system,因为一个项目的pom.xml如果使用了scope为system的depend后,会导致传递依赖中断,即所有其他依赖本项目的项目都无法传递依赖了。
比如:假设A项目依赖了m.jar, n.jar, x.jar, 然后我们把A项目打包成了a.jar, 如果此时B项目依赖了A项目,则B项目通常自然就已经默认传递依赖了m.jar, n.jar, x.jar。
但是如果A项目的pom.xml文件出现了scope为system的depend,则B项目就只能依赖a.jar, 将无法传递依赖m.jar, n.jar, x.jar;
三、最终推荐使用
推荐使用第一种方法来引用外部的jar包。