Maven install/package 程序包不存在找不到符号(SpringBoot 项目)

1 .发现问题

开发时项目跑的好好的一直没有问题,今天突然想到打成JAR包再跑跑看。mvn clean package了一下,就出现了这个问题。

2.解决问题 

先说一下我的项目结构有四个module分别是

xne

- xne-common

- xne-web

- xne-wechat

打包发现问题的就是xne-wechat

从名字来看大家可能就清楚xne是其它三个module的parent.

其中xne-wechat和xne-web依赖xne-common,这里出问题的就是xne-common里的,我想可能是依赖的问题.

我就把xne-common clean了一下,并且在maven的本地仓库里xne-common的依赖删除,然后 给common做一个mvn clean install ,这个命令会把common生成jar,并添加到maven的本地仓库,之后再给xne-wechat打包,发现还是这个问题。

然后就想到可能是SpringBoot的maven的插件问题,就是下面这个

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

作为其他三个module的root工程 xne的pom 里就设置了这个插件。

于是就搜了这个插件的坑 用这个插件打包的Jar包可以直接运行,但是不可依赖!

3.解决办法

有两个两种解决办法:

1.不要在root的pom文件里设置这个插件,在需要打成可执行jar包的项目的pom里设置这个插件

例如我这个项目  只在xne-wechat和xne-web里设置这个插件

xne

- xne-common

- xne-web

- xne-wechat

2.就是可以在需要对外提供依赖的项目的pom里设置(如本项目的xne-common),这样设置会让xne-common项目生成两个jar:一个后缀为-execute.jar的可执行jar,另一个就是普通的可依赖的jar

 
    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                execute
            
        
    
 

另外如果不想生成可执行jar包,可以把

execute 改成 true

对了,不要忘了先mvn clean install一下对外提供依赖的module

你可能感兴趣的:(MAVEN,SpringBoot)