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.yml配置文件的,需要运行jar包时命令行进行输入参数使用!

4、运行jar包

java -jar ./test-v1.0.jar --spring.config.location=./application.yml

结束!撒花~~作者踩了两天的坑才总结出来的,希望有用!!!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值