1 打包只需打包入口模块即可
2 父工程打pom包
<packaging>pom</packaging>
公共模块不能打war包,否则依赖他的模块无法打包
3 spring-boot-maven-plugin插件只能放在入口模块,不可放在父工程或者公共模块的pom文件,否则无法打包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
</plugin>
</plugins>
</build>
4 公共模块需指明其资源位置,添加
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**.*</include>
<include>**/*.*</include><!-- i18n能读取到 -->
<include>**/*/*.*</include>
</includes>
</resource>
</resources>
</build>
正常打包后应该除了 XX.jar文件还有另外一个 XX.jar.original文件
如果只有XX.jar 文件 发布到linux系统将不能成功运行,在windows执行java -jar XX.jar则会提示
jar包中没有主清单属性
因为用压缩工具查看jar包中 MANIFEST.MF 文件
发现其中没有说明,主类和启动类 ,图中箭头所指。
那么这时需要在pom文件中
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--<version>2.1.6.RELEASE</version>-->
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
<!--idea打jar包,提示 jar包中没有主清单属性 - 解决办法
1.是 <goal>repackage</goal>起了作用,内容如下:-->
<!--插件中添加如下内容:executions-->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
加上这个插件,即可。