第一种方法,
将本地jar包打包到本地仓库然后再引用:
mvn install:install-file -Dfile=my-jar.jar -DgroupId=org.richard -DartifactId=my-jar -Dversion=1.0 -Dpackaging=jar
这里需要自己改动的有三个地方:
-Dfile=my-jar.jar
这里的-Dfile
属性指明所要打包的jar包的本地位置;-DgroupId=org.richard
这里-DgroupId
指明的是打包到本地仓库的位置,这里就是打包到org–>richard,然后-DartifactId=my-jar再次指明下一级目录为–>my-jar;- 同样的,
-Dversion=1.0
通过版本号指定最后一级目录–>1.0;
最后jar包的仓库位置目录结构就为:org–>richard–>my-jar–>1.0–>my-jar.jar,最后的jar名字就是DartifactId-Dversion.jar
的形式
第二种方法,
使用system scope,
<dependencies>
<dependency>
<!--这里的属性自己随意指定-->
<groupId>org.richard</groupId>
<artifactId>my-jar</artifactId>
<version>1.0</version>
<scope>system</scope>
<!--将jar包放在项目根目录下lib(新建)文件中-->
<systemPath>${project.basedir}/lib/my-jar.jar</systemPath>
</dependency>
</dependencies>
然后在pom中新建一个插件即可:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>xxx-jar-with-dependencies</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<targetPath>lib/</targetPath>
<directory>lib/</directory>
<includes>
<include>**/my-jar.jar</include>
</includes>
</resource>
</resources>
</build>
最后,由于最近总是接触多模块的Maven项目,之间会有一些依赖,IDEA自带的打包一些报错,不知道为什么,只能直接在Dos或Bash下进入Module根目录进行手动打包然后发版,手动打包(跳过Maven的测试环节):
mvn clean -DskipTests install