SpringBoot分离打Jar包的两种配置方式

Spring Boot 是一种快速创建独立的、基于Spring的应用程序的方式,具有代码少、配置简单、开发效率高、开箱即用等特点。在实际应用中,我们通常需要将 Spring Boot 应用程序打包为一个可执行的 jar 包,以方便进行部署和运行。而分离打 jar 包则是将引用的依赖库全部打包进来的方式,使得打包后的 jar 包可以直接运行,不需要依赖外部的类库文件。

下面我们将讲解 Spring Boot 分离打 jar 包的两种配置方式。

配置方式一

在 pom.xml 文件中添加以下代码:

<!-- Maven Shade Plugin -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.4</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <finalName>${project.artifactId}-${project.version}</finalName>
                <createDependencyReducedPom>false</createDependencyReducedPom>
            </configuration>
        </execution>
    </executions>
</plugin>

执行 mvn package 命令,则可以生成一个分离打的可执行 jar 包。

配置方式二

在 pom.xml 文件中添加以下代码:

<!-- Maven Assembly Plugin -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.3.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.MainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </execution>
    </executions>
</plugin>

首先配置项目的 <mainClass> 标签,指定程序入口。然后执行 mvn clean package 命令,则可以生成一个分离打的可执行 jar 包。

以上两种配置方式均可以实现 Spring Boot 分离打 jar 包的效果,开发人员可以根据实际需求选择使用。

下面给出两个示例,分别使用上述两种配置方式生成分离打的可执行 jar 包。

示例一:使用 Maven Shade Plugin 生成分离打的可执行 jar 包

在项目根目录下创建以下 demo.java 文件:

package com.example.demo;

public class demo {
    public String sayHello(String name) {
        return "Hello, " + name + "!";
    }

    public static void main(String[] args) {
        demo d = new demo();
        System.out.println(d.sayHello("World"));
    }
}

在 pom.xml 文件中添加以下代码:

<groupId>com.example</groupId>
<artifactId>maven-shade-plugin-demo</artifactId>
<version>1.0.0</version>

<!-- Maven Shade Plugin -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.4</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <finalName>${project.artifactId}-${project.version}</finalName>
                <createDependencyReducedPom>false</createDependencyReducedPom>
            </configuration>
        </execution>
    </executions>
</plugin>

执行 mvn package 命令,则可以在 target 目录下生成一个名为 maven-shade-plugin-demo-1.0.0.jar 的可执行 jar 包。在命令行中输入以下命令则可以执行该 jar 包:

java -jar maven-shade-plugin-demo-1.0.0.jar

如果一切正常,则控制台会输出以下内容:

Hello, World!

示例二:使用 Maven Assembly Plugin 生成分离打的可执行 jar 包

在项目根目录下创建以下 demo.java 文件:

package com.example.demo;

public class demo {
    public String sayHello(String name) {
        return "Hello, " + name + "!";
    }

    public static void main(String[] args) {
        demo d = new demo();
        System.out.println(d.sayHello("World"));
    }
}

在 pom.xml 文件中添加以下代码:

<groupId>com.example</groupId>
<artifactId>maven-assembly-plugin-demo</artifactId>
<version>1.0.0</version>

<!-- Maven Assembly Plugin -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.3.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.demo.demo</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </execution>
    </executions>
</plugin>

执行 mvn clean package 命令,则可以在 target 目录下生成一个名为 maven-assembly-plugin-demo-1.0.0-jar-with-dependencies.jar 的可执行 jar 包。在命令行中输入以下命令则可以执行该 jar 包:

java -jar maven-assembly-plugin-demo-1.0.0-jar-with-dependencies.jar

如果一切正常,则控制台会输出以下内容:

Hello, World!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot分离打Jar包的两种配置方式 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • springboot自定义starter实现过程图解

    首先我们来讲解一下「springboot自定义starter实现过程图解」这个话题,它主要分为以下几个步骤: 1. 确定Starter功能 首先,我们需要明确自己想要的 Starter 功能,例如:一个 MariaDB 组件的 Starter,我们需要确定它的功能、作用和 API。这样才能在后续的开发中清晰地了解我们想要开发什么。 2. 创建Maven工程并…

    Java 2023年5月19日
    00
  • spring mvc实现文件上传与下载功能

    Spring MVC实现文件上传与下载功能 Spring MVC是一个非常流行的Java Web框架,它提供了很多方便的功能,其中包括文件上传和下载。本文将详细讲解如何使用Spring MVC实现文件上传和下载功能,并提供两个示例来说明如何实现这一过程。 文件上传 文件上传是Web应用程序中常见的功能之一。Spring MVC提供了很多方便的类和注解来处理文…

    Java 2023年5月17日
    00
  • springboot配置https安全连接的方法

    下面是关于如何配置Spring Boot的HTTPS安全连接的完整攻略: 1. 获取SSL证书 首先,为了进行HTTPS安全连接,需要一个服务器SSL证书。你可以向CA颁发机构购买或免费获取。还可以通过使用同类工具创建自签名证书。 2. 配置HTTPS连接 2.1 application.properties 在Spring Boot项目的applicati…

    Java 2023年5月20日
    00
  • Java执行JS脚本工具

    当需要Java程序执行JavaScript脚本时,可以使用Java中的ScriptEngine来实现。 在Java中添加依赖: 首先需要向pom.xml文件中添加JavaScript的依赖。以下是Maven依赖项: <dependency> <groupId>javax.script</groupId> <artif…

    Java 2023年5月26日
    00
  • 虚引用的作用是什么?

    虚引用(Phantom Reference)是Java中一种比较特殊的引用类型,和软引用、弱引用类似,虚引用不会影响垃圾回收对象的生命周期,但是虚引用主要是用于对象被回收时的通知。 虚引用主要有两个作用: 控制对象回收时机 虚引用被实例化时需要与一个引用队列相关联,当对象被垃圾回收器标记为回收时,虚引用会被放入引用队列中,这时我们就可以通过判断引用队列中是否…

    Java 2023年5月10日
    00
  • SpringBoot入坑笔记之spring-boot-starter-web 配置文件的使用

    SpringBoot入坑笔记之spring-boot-starter-web配置文件的使用 在Spring Boot中,我们可以使用spring-boot-starter-web依赖来快速构建Web应用程序。在本文中,我们将介绍如何使用spring-boot-starter-web依赖,并提供两个示例。 添加依赖 在pom.xml文件中添加以下依赖: &lt…

    Java 2023年5月15日
    00
  • Spring Boot 日志配置方法(超详细)

    Spring Boot日志配置方法(超详细) Spring Boot是一个非常流行的Java开发框架,它提供了多种日志框架,包括Logback、Log4j2、Java Util Logging等。本文将详细介绍Spring Boot日志配置方法,包括配置文件、注解、代码等。 1. 配置文件 Spring Boot的日志配置文件是application.pro…

    Java 2023年5月14日
    00
  • Java 面向对象的特征解析与应用

    Java 面向对象的特征解析与应用 面向对象的特征 Java 是一种面向对象编程语言,具有以下四个特征: 封装性(Encapsulation):将数据和方法封装在一个单元中,数据可以被保护,只能通过特定方法进行访问,避免了数据的误操作和改变,提高了代码的安全性和可靠性。 继承性(Inheritance):继承允许一个类(称为“子类”)继承另一个类(称为“父类…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部