方式一:直接在pom.xml设置
将本地依赖放在文件夹中。我这里自己随便写了一个lo4j2的写日志的jar
在需要使用依赖的项目的pom文件中增加依赖引用
<dependency>
<groupId>com.lx.mavenprojectjar</groupId> <!--groupId-->
<artifactId>mycommonlog</artifactId> <!--artifactId-->
<version>1.0</version> <!--自定义(随便填)-->
<scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
<systemPath>${project.basedir}/lib/mycommonlog-1.0.jar</systemPath> <!--项目根目录下的lib文件夹下-->
</dependency>
但是这样打包的依赖并不会依赖传递。
方式二:命令行发布jar到maven本地仓库
命令行直接执行,这样直接将jar发布到了本地就直接在pom文件中依赖:
mvn install:install-file -Dfile=mycommonlog-1.0.jar -DgroupId=com.lx.mavenprojectjar -DartifactId=mycommonlog -Dversion=1.0 -Dpackaging=jar
<dependency>
<groupId>com.lx.mavenprojectjar</groupId>
<artifactId>mycommonlog</artifactId>
<version>1.0</version>
</dependency>
但是这样还是不能将依赖传递,因为maven库中的pom文件并没有依赖配置,所以需要把maven环境目录下的pom文件拷贝出来,再增加依赖的节点就可了,然后再执行mvn install的时候指定pom文件路径。
mvn install:install-file -Dfile=mycommonlog-1.0.jar -DgroupId=com.lx.mavenprojectjar -DartifactId=mycommonlog -Dversion=1.0 -Dpackaging=jar -DpomFile=mycommonlog-1.0.pom
方式三:使用Maven Plugin发布jar到本地仓库
需要安装jar到本地仓库的pom文件中增加
<build>
<finalName>mycommonlog</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<file>${project.basedir}/target/mycommonlog.jar</file>
<groupId>com.lx.mavenprojectjar</groupId>
<artifactId>mycommonlog</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<!-- 默认创建pom文件-->
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后控制台执行,等待执行完成之后就可以看到jar和pom文件已经成功的安装了本地
mvn clean package -Dmaven.test.skip=true
官网地址:maven-install-pulgin