maven打包包含本地jar包

时间:2022-05-30 12:27:53

maven工程中,在pom文件中配置依赖包。但是在开发中,要做使用华为、小米、信鸽推送,这些jar没有pom配置地址,只能本地引用。在eclipse中可以在build path中添加jar包,但是单独编译maven工程时,就会报错。

解决方法:在pom文件中添加如下配置,可以在编译的时候引用到这些本地jar包

 <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
添加后,编译没有问题,但是部署到tomcat下,运行时又报错找不到包,

查看打成的war包下WEB_INFO/lib下没有这些jar包

参考http://blog.csdn.net/l1028386804/article/details/52594602,添加如下配置后,war包中包含了本地jar包,从而解决了这一问题。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<filtering>true</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
 
#######################2017-05-15更新################################
采用以上方式,jar包打包到war包中,但是本地jar包在war包中都损坏了,无法使用。
因此,重新查找方法,使用如下配置,jar包没有损坏,war包可以正常启动。
1、添加lib包中本地jar包依赖
<dependency>    <groupId>httpclient</groupId>    <artifactId>httpclient</artifactId>    <version>4.3.3</version>    <scope>system</scope>    <systemPath>${project.basedir}/lib/httpclient-4.3.3.jar</systemPath></dependency>

2、打包时,在插件plugs中增加如下配置,包含本地jar包
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>lib/</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>