SpringBoot打包时分离yml、properties、xml配置文件以及依赖包

许你岁月静好无恙

1.修改pom文件:

<output.dependence.file.path>lib/</output.dependence.file.path>
<output.resource.file.path>resource/</output.resource.file.path>
<build>
 <resources> <resource> <directory>src/main/resources</directory>
 <excludes> <exclude>*.properties</exclude>
 <exclude>*.yml</exclude>
 </excludes> </resource> </resources> <plugins> <!-- 打JAR包,不包含依赖文件;显式剔除配置文件 -->
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-jar-plugin</artifactId>
 <configuration> <!--不打包资源文件,剔除配置文件-->
 <excludes>
 <exclude>*.**</exclude>
 <exclude>*/*.xml</exclude>
 <exclude>*.properties</exclude>
 <exclude>*.yml</exclude>
 <exclude>*/*.properties</exclude>
 <exclude>*/*.yml</exclude>
 </excludes> <archive> <manifest> <!--将classpath添加到依赖描述 -->
 <addClasspath>true</addClasspath>
 <!--MANIFEST.MF 中 Class-Path 加入前缀-->
 <!--lib文件夹内容,需要 maven-dependency-plugin插件补充--> <classpathPrefix>lib/</classpathPrefix>
 <!--jar包不包含唯一版本标识-->
 <useUniqueVersions>false</useUniqueVersions>
 <!--指定入口类-->
 <mainClass>com.htcs.modules.WebApplication</mainClass>
 </manifest> <manifestEntries> <!--MANIFEST.MF 中 Class-Path 加入资源文件目录,加入自定义路径,多个路径用空格隔开-->
 <!--此处resources文件夹的内容,需要maven-resources-plugin插件补充上--> <Class-Path>./resources/</Class-Path>
 </manifestEntries> </archive> <outputDirectory>${project.build.directory}</outputDirectory>
 </configuration> </plugin>
 <!--拷贝依赖 copy-dependencies-->
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-dependency-plugin</artifactId>
 <executions> <execution> <id>copy-dependencies</id>
 <phase>package</phase>
 <goals> <goal>copy-dependencies</goal>
 </goals> <configuration> <outputDirectory> ${project.build.directory}/lib/
                        </outputDirectory>
 </configuration> </execution> </executions> </plugin>
 <!--拷贝资源文件 copy-resources-->
 <plugin>
 <artifactId>maven-resources-plugin</artifactId>
 <executions> <execution> <id>copy-resources</id>
 <phase>package</phase>
 <goals> <goal>copy-resources</goal>
 </goals> <configuration> <resources> <resource> <directory>src/main/resources</directory>
 <includes> <include>*.properties</include>
 <include>*.yml</include>
 <include>*/*.properties</include>
 <include>*/*.properties</include>
 </includes> </resource> </resources> <outputDirectory>${project.build.directory}/resources</outputDirectory>
 </configuration> </execution> </executions> </plugin>
 <!--spring boot repackage,依赖 maven-jar-plugin 打包的jar包 重新打包成 spring boot 的jar包-->
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 <configuration> <!--重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖-->
 <includes>
 <include> <groupId>non-exists</groupId>
 <artifactId>non-exists</artifactId>
 </include> </includes> <layout>ZIP</layout>
 <!--使用外部配置文件,jar包里没有资源文件-->
 <addResources>true</addResources>
 <outputDirectory>${project.build.directory}</outputDirectory>
 </configuration> <executions> <execution> <goals> <goal>repackage</goal>
 </goals> <configuration> <!--配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar -->
 <!--配置jar包特殊标识 不配置,原文件命名为 *.jar.original,生成新文件 *.jar --> <!--<classifier>run</classifier>--> </configuration>
 </execution> </executions> </plugin> <plugin> <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 <plugin> <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <version>2.22.2</version>
 <configuration> <skipTests>true</skipTests>
 </configuration> </plugin> </plugins>
</build>

2.执行打包maven命令

mvn package

3.拷贝相应文件到服务器

image.png

4.在文件目录下执行运行脚本或命令

nohup java -jar htcsbusiness.jar > ./htcs.log 2>&1 &
阅读 4k
1 声望
0 粉丝
0 条评论
1 声望
0 粉丝
文章目录
宣传栏