1、移除原来的Springboot项目打包插件
- 原来使用的打包插件:spring-boot-maven-plugin
2、替换为maven-jar-plugin插件:
addClasspath:表示需要加入到类构建路径
classpathPrefix:指定生成的Manifest文件中Class-Path依赖lib前面都加上该前缀路径,构建出lib/xx.jar
mainClass:表示项目的启动类。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!--指定jar包-->
<classpathPrefix>lib/</classpathPrefix>
<!--指定项目启动类-->
<mainClass>com.dmz.DemoApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
3、配置拷贝依赖的jar包到lib目录插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-lib</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
4、打包项目
5、在和jar包同级的目录下新建一个config目录,放入application.yml配置文件
打包的jar里面不是应该有application.yml文件吗,这里为什么再放一份?
这是因为springboot读取配置有一个优先级,放在jar包外面config目录优先级最高,主要是便于从外部修改配置,而不是改jar包中的application.yml文件。优先级如下:
(1) 当前目录的config目录下
(2) 当前目录
(3) classpath的config目录下
(4) classpath的根目录
6、 启动项目
加入 –debug 可以让你可以看到比较详细的启动日志:java -jar xxx.jar --debug