springboot的项目很容易搭建,但是在springboot打成包的时候遇到了些问题,springboot提供了2种打包策略,打成jar包(内含容器)或者是war包(需要用容器启动),为了在服务器上部署简单(不需要多余的容器),我打成jar包。遇到了如下问题:
1.报noClassFoundError 特别是EmbeddedValueResolver类
解决方案:由于引入了其他项目里面含有其他spring版本,特别是是spring-bean,版本为4.2以下。在项目pom中重新引下高版本的jar包,这里要特别提一下,如果存在多版本而没有额外的exclude,项目引入根据层级最近的那一个。如表:
———-pom
———A
####——–spring-bean 4.1.9
———B
####——–C
#########——–spring-bean 4.2.*
最终会引入4.1.9
2.打成jar包需要的插件:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.0.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
如果存在多个main函数会报错,这时需要另外一个插件:
org.apache.maven.plugins
maven-jar-plugin
true
lib/
**.class
3.启动jar包报错:A child container failed during start
解决中