今天遇到一个问题,我使用mvn clean package 打包命令时,打好的包里没有class文件。结果发现编译的时候是找不到jar包,而找不到的jar包正是第三方包,也就是加入到WEB-INF/lib里的包。
上网查了一下,原因是maven编译的时候不会去寻找非maven依赖的包。
解决办法有两个:
1、配置maven,将项目里的jar包也加入到maven的寻找路径中。
2、将项目里的jar包配置为maven管理的jar包,加入到本地maven库中。
我选择了第二种方式,这样所有的jar包都由maven管理,干净整洁。
步骤如下:
1、使用maven命令将jar包添加到本地maven库,举例 bccs-api-3.0.1.jar
mvn install:install-file -DgroupId=com.baidu.yun -DartifactId=bccs
-Dversion=3.0.1 -Dpackaging=jar -Dfile=bccs-api-3.0.1.jar
命令解释:
mvn install:install-file install命令
-DgroupId : groupId
-DartifactId :artifactId
-Dversion : jar包版本号
-Dpackaging: 要install的包的类型
-Dfile :要install的jar包位置
执行命令后,查看本地maven库中,已经生成maven依赖pom等maven依赖文件了。
2、项目pom.xml中添加依赖关系
<dependency>
<groupId>com.baidu.yun</groupId>
<artifactId>bccs</artifactId>
<version>3.0.1</version>
</dependency>
经过上面两部,你的jar已经成功变成maven管理了。如果项目报错,可以project/clean一下。应该就没问题了
案例:
--添加第三方jar到本地maven库
mvn install:install-file -DgroupId=com.alipay -DartifactId=alipay-sdk-java -Dversion=20161129201425 -Dpackaging=jar -Dfile=alipay-sdk-java-20161129201425.jar