Java程序打jar包(包含作者各种踩坑案例,力求为大家避雷)
一、诉求
将一个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
结束!撒花~~作者踩了两天的坑才总结出来的,希望有用!!!