maven项目引入第三jar包时,打包无法引入问题

近期在公司安排项目,钉钉企业内部应用开发时,遇到棘手问题,引入钉钉SDK,idea工具使用跑项目时没有任何问题,打包之后却,无法将SDK打到war 中。

pom配置如下:

maven项目引入第三jar包时,打包无法引入问题_第1张图片

在这里,说下如何解决类似的问题。首先,我们在通过上述方式引入的时候只是说我们run的时候自己本地项目知道根据你导入jar的路径去加载jar包,所以会没问题。但是!打包之后,这个jar包是不会被打包进去的,导致报错。所以,我们想要正常运行,也要把jar包打包到项目中。这里涉及到两种形式的包:jar包和war包。首先,不管我们打何种包都要经过相同的操作:

项目结构:

maven项目引入第三jar包时,打包无法引入问题_第2张图片

 

1.将包引入到自己的资源文件下:比如

maven项目引入第三jar包时,打包无法引入问题_第3张图片

 

 

我这里是springboot项目,在resources下建立了lib文件夹,将自己本地的jar引入到了lib下。

com.taobao.top

top-api-sdk-dev

ding-open-mc-SNAPSHOT

system

${pom.basedir}/lib/taobao-sdk-java-auto_1479188381469-20191125.jar

com.taobao.top

lippi-oapi-encrpt

dingtalk-SNAPSHOT

system

${pom.basedir}/lib/lippi-oapi-encrpt.jar

然后,光做这些还是不够的,这样只能保证我们在本地能够正常运行,打包还是不会被打包进去。所以下面才是重点中的重点。

如果是打jar包:我们需要在引入的springboot的maven插件中告诉maven,将我们的刚刚引入的作用域为system的本地jar也打包进来,如图所示:

如果是打war包,需要在maven的war插件中引入你的本地jar包

org.apache.maven.plugins

maven-war-plugin

../dingding/lib

WEB-INF/lib 

false           

 

direcotry:你本地的jar包的路径

targetPath:将你的jar包打到WEB-INF/lib下

综述:通过上面共同的操作+不同形式包的插件部分的操作就可以解决问题了。以上就是笔者要说的问题了。

你可能感兴趣的:(maven项目引入第三jar包时,打包无法引入问题)