今天使用maven
命令打包springboot
项目成可执行jar
,总是无法成功。表现为打包的jar包只有项目本身的Class
,不包含依赖。
但是把项目文件复制到其他目录就能正常使用。后来发现原因是这这样。
项目是一个多Module项目,父pom中这样写的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <build> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.1.8.RELEASE</version> <configuration> <skip>true</skip> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement> </build>
|
我做的子Module是这样写的。
1 2 3 4 5 6 7 8 9 10 11
| <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
|
这样问题就产生了,子项目是继承父pom的,这样子项目没有写版本号,但是我没注意看到父pom有一个
<skip>true</skip>
,这个选项的意思是忽略execution
,这样插件就不会执行。
被坑了,弄了好久才注意到父pom这个选项。
打包命令,顺便跳过测试
1
| mvn clean package -Dmaven.test.skip=true
|