一、诉求
将一个spring boot项目打包成一个jar包,直接在windows或者linux系统下直接命令行运行。
二、配置步骤
1、编写assembly.xml配置文件(放在pom.xml同级目录)
<?xml version="1.0"?>
<assembly>
<id>Test-v1.0</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>
<!--注-->
(1)<includeBaseDirectory>:这个元素指定了在打包时是否包含基础目录。设置为false意味着不会将构建目录(${project.build.directory})本身作为打包的一部分,而是只包含其下的文件和目录。
(2)<directory>:指定了源目录的路径,这里使用了Maven属性${project.build.directory},它通常指向项目的target目录,即Maven构建输出的目录。
(3)<outputDirectory>:定义了这些文件在打包文件中的目标目录。这里设置为/,意味着这些文件将被放置在打包文件的根目录下。
(4)<includes>:定义了哪些文件应该被包含在打包中。这里通过<include>*.jar</include>指定了所有.jar文件都应该被包含。
2、在pom.xml文件中配置依赖(此处只罗列打包用到的依赖)
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>8</java.version>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<maven-assembly-plugin.version>2.2.1</maven-assembly-plugin.version>
<maven-jar-plugin.version>2.4</maven-jar-plugin.version>
<maven-surefire-plugin.version>2.12.4</maven-surefire-plugin.version>
</properties>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>application.yml</exclude>
<exclude>font/</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.1.RELEASE</version>
<configuration>
<!-- 工程主入口-->
<mainClass>com.demo.AnalysisApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>testProject</finalName>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
3、正式开始打包(非常简单)
第一步:打开IDEA右侧的maven菜单栏
第二步:点击clean
第三步:点击package
第四步:命令行输出打包成功,在target目录下即可看到jar包
通过命令行查看jar包中包含的文件
jar tf your-jar-file.jar
注意此处有许多坑:
1、注意mainClass com.demo.AnalysisApplication这里的主程序入口路径有没有写错!
2、注意通过此方法打包的jar是没有application.xml配置文件的,需要运行jar包时命令行进行输入参数使用!
4、运行jar包
java -jar ./test-v1.0.jar --spring.config.location=./application.yml
结束!撒花~~作者踩了两天的坑才总结出来的,希望有用!!!