SpringBoot在idea通过maven工具打包生成jar时找不到自定义的外部jar包中的class文件

            今天在项目中通过使用idea工具打包maven项目的时候,由于使用了外部自定义的jar包,在生成package的jar包的时候启动报错,错误显示的是缺少自定义jar包中的class类,这里是使用的springboot测试项目,在项目中使用了动态加载bean,关于动态加载bean请参考前面的文章http://357029540.iteye.com/blog/2389375,找了很久也没有发现原因,明明生成的lib文件夹下面有外部的导入包,可是依然报错,后来把生成的jar包打开才发现原来META-INF文件夹下的MANIFEST.MF文件的class-path下缺少了自定义的外部jar包的引用,把外部jar包的引用添加进去后就不报错了,至于为什么打包的时候会缺少外包jar的引用,没有找到具体原因。

       外部引入本地jar的方式(非.m2下面的)是:

<dependency>
     <groupId>com.dynamic</groupId>
     <artifactId>testDynamicBean</artifactId>
     <version>1.0</version>
     <scope>system</scope>
     <systemPath>f:/testDynamicBean-1.0-SNAPSHOT.jar</systemPath>
</dependency>
      如果不想使用本地jar包的导入方式,即打包到.m2下面后再引入不使用
<scope>system</scope>
<systemPath>f:/testDynamicBean-1.0-SNAPSHOT.jar</systemPath>
 这部分配置,我们可以通过使用 mvn install:install-file -Dfile= f:/testDynamicBean-1.0-SNAPSHOT.jar  -DgroupId= com.dynamic  -DartifactId= testDynamicBean  -Dversion=1.0 -Dpackaging=jar  -DgeneratePom=true -DcreateChecksum=true 的方式把该jar执行到.m2的目录下就可以直接如下使用了:
<dependency>
     <groupId>com.dynamic</groupId>
     <artifactId>testDynamicBean</artifactId>
     <version>1.0</version>
</dependency>
 

猜你喜欢

转载自357029540.iteye.com/blog/2389905