Pom文件
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>static/fonts/**</exclude>
</excludes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>static/fonts/**</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<compilerArgument>-Xlint:unchecked</compilerArgument>
</configuration>
</plugin>
<!--利用maven-jar-plugin插件打jar包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<!--设置jar依赖的第三方jar的目录前缀 和下放的copy-dependency所设置的目录相对应 -->
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib</classpathPrefix>
<!--配置jar启动类 -->
<mainClass>com.xx.xx.Main</mainClass>
</manifest>
<manifestEntries>
<Class-Path>./</Class-Path>
</manifestEntries>
</archive>
<excludes>
<exclude>*.properties</exclude>
<exclude>*.yml</exclude>
</excludes>
</configuration>
</plugin>
<!--设置jar所依赖的三方jar包存放的路径 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dep</id>
<phase>prepare-package</phase>
<goals>
<goal>
copy-dependencies
</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<!--利用maven的assembly插件 打包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${project.name}</finalName>
<descriptors>
<descriptor>${basedir}/src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Assembly
<?xml version="1.0" encoding="UTF-8"?>
<assembly>
<!-- 可自定义,这里指定的是项目环境 -->
<!-- spring-boot-assembly-local-1.0.RELEASE.tar.gz -->
<id>${project.version}</id>
<!-- 打包的类型,如果有N个,将会打N个类型的包 -->
<formats>
<format>tar.gz</format>
<!--<format>zip</format>-->
</formats>
<!--tar.gz压缩包下是否生成和项目名相同的根目录-->
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<!-- 表示的是包含下面格式的资源文件 -->
<includes>
<include>*.yml</include>
<include>*.properties</include>
</includes>
<!--设置文件权限-->
<fileMode>0644</fileMode>
<!--设置配置文件输出的外部文件夹-->
<outputDirectory>./config</outputDirectory>
</fileSet>
<!-- scripts -->
<fileSet>
<directory>${basedir}/src/bin</directory>
<includes>
<include>*.sh</include>
<include>*.bat</include>
</includes>
<fileMode>0755</fileMode>
<!--设置项目相关脚本输出的外部文件夹-->
<outputDirectory>./bin</outputDirectory>
</fileSet>
<!-- executable jar -->
<fileSet>
<directory>${project.build.directory}</directory>
<!--设置项目jar以及项目依赖的第三方jar输出的外部文件夹-->
<outputDirectory>./</outputDirectory>
<includes>
<include>*.jar</include>
<!--注意此处是将项目依赖的第三方jar全部copy至assembly打包出来的目录中
如果没有此段,则lib目录是在target目录下,而不会存放于assembly打包的目录中-->
<include>/lib/*</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
</fileSets>
<!--<dependencySets>-->
<!--<dependencySet>-->
<!--<useProjectArtifact>true</useProjectArtifact>-->
<!--<outputDirectory>lib</outputDirectory>-->
<!--<scope>runtime</scope>-->
<!--</dependencySet>-->
<!--</dependencySets>-->
</assembly>
- 需要自行配置程序启动类。
- assembly.xml 位于项目src/main/Assembly/assembly.xml .
- 请使用 Maven-Lifecycle-package 打包,不需要的配置可自行删除