关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

Maven pom.xml 添加本地jar包依赖以及打包方法

发布时间:2020-03-18 00:00:00

Maven项目打包时,如果遇到需要添加本地jar包依赖的时候,可以选择两种方法:

1. 安装到本地仓库

第一种方法比较常规,适用于需要添加的jar包也是由maven项目导出,含有pom文件的时候。只需要将jar包安装到本地maven仓库下,然后添加依赖即可。

(1)安装到本地仓库,执行以下命令(其中的-Dfile/-DgroupId/-DartifactId/-Dversion项根据pom文件内容填写):

mvn install:install-file -Dfile=xxxxx.jar -DgroupId=xxx.xxx.xxx -DartifactId=xxxxx -Dversion=1.0.0 -Dpackaging=jar

(2)安装之后可以在本地仓库中找到对应的jar包。然后将对应的依赖信息插入到工程的pom文件即可:

<dependency><groupId>xxx.xxx.xxxgroupId><artifactId>xxxxxartifactId><version>1.0.0version>dependency>

 

2. dependency中指定scope="system"和本地jar包路径

这种方法适用于其他方式导出的jar包,jar包中不含有pom信息,从而无法安装进本地仓库的情况。做法是:先配置本地jar包依赖,然后在build时将设置将jar包导出,同时配置manifest。

(1)配置本地jar包依赖(systemPath指向本地jar包路径):

<dependency><groupId>com.amazonawsgroupId><artifactId>aws-java-sdk-s3artifactId><version>1.11.0version><scope>systemscope><systemPath>${project.basedir}/lib/xxx.jarsystemPath>dependency>

(2)在

<plugin><groupId>org.springframework.bootgroupId><artifactId>spring-boot-maven-pluginartifactId><configuration><includeSystemScope>trueincludeSystemScope>configuration>plugin>

(3)如果项目使用maven-jar-plugin插件打包的话,还需要在manifectEntries中添加对应的jar包信息;否则虽然jar包导出了,但是项目生成的MANIFEST.MF文件中没有对应的依赖信息,也会导致运行时找不到对应的class。

<plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-jar-pluginartifactId><configuration><archive><manifest><addClasspath>trueaddClasspath><classpathPrefix>lib/classpathPrefix><mainClass>XXXXmainClass>manifest><manifestEntries><Class-Path>./ lib/xxxxx.jarClass-Path>manifestEntries>archive><outputDirectory>${project.build.directory}/XXXXXoutputDirectory>configuration>plugin>

(4)最后附上一个项目完整的

<build><finalName>XXXXXfinalName><sourceDirectory>src/main/javasourceDirectory><resources><resource><directory>src/main/resourcesdirectory><targetPath>${project.build.directory}/XXXXXtargetPath><excludes><exclude>**/*.javaexclude>excludes>resource>resources><testSourceDirectory>src/test/javatestSourceDirectory><testResources><testResource><directory>src/test/resourcesdirectory><filtering>truefiltering><excludes><exclude>**/*.javaexclude>excludes>testResource>testResources><plugins><plugin><groupId>org.springframework.bootgroupId><artifactId>spring-boot-maven-pluginartifactId><configuration><includeSystemScope>trueincludeSystemScope>configuration>plugin><plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-surefire-pluginartifactId><configuration><skipTests>trueskipTests>configuration>plugin><plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-dependency-pluginartifactId><executions><execution><id>copy-dependenciesid><phase>packagephase><goals><goal>copy-dependenciesgoal>goals><configuration><outputDirectory>${project.build.directory}XXXXX/liboutputDirectory>configuration>execution>executions>plugin><plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-jar-pluginartifactId><configuration><archive><manifest><addClasspath>trueaddClasspath><classpathPrefix>lib/classpathPrefix><mainClass>xxx.xxx.XXXXXmainClass>manifest><manifestEntries><Class-Path>./ lib/xxxxx.jarClass-Path>manifestEntries>archive><outputDirectory>${project.build.directory}/XXXXXoutputDirectory>configuration>plugin>plugins>build>

 


/template/Home/Zkeys/PC/Static