Springboot怎么打包成jar发布

发布时间:2023-02-28 16:13:40 作者:iii
来源:亿速云 阅读:100

Spring Boot 怎么打包成 jar 发布

Spring Boot 是一个用于快速构建基于 Spring 框架的应用程序的开源框架。它提供了许多开箱即用的功能,使得开发者可以专注于业务逻辑的实现,而不需要过多关注底层的配置和依赖管理。Spring Boot 应用程序可以打包成多种格式,其中最常见的是 JAR 包。本文将详细介绍如何将 Spring Boot 应用程序打包成 JAR 文件并发布。

1. Spring Boot 打包成 JAR 的基本概念

在 Spring Boot 中,打包成 JAR 文件是最常见的发布方式之一。JAR 文件是一种 Java 归档文件,它包含了编译后的 Java 类文件、资源文件以及元数据。Spring Boot 的 JAR 文件是一个可执行的 JAR 文件,这意味着它可以直接通过 java -jar 命令运行,而不需要额外的 Web 服务器或应用服务器。

Spring Boot 使用 Maven 或 Gradle 作为构建工具,这两种工具都支持将应用程序打包成 JAR 文件。本文将主要介绍如何使用 Maven 进行打包。

2. 使用 Maven 打包 Spring Boot 应用程序

2.1 配置 Maven 项目

首先,确保你的 Spring Boot 项目是一个 Maven 项目。Maven 项目的根目录下应该有一个 pom.xml 文件,这是 Maven 的配置文件。在 pom.xml 文件中,你需要确保以下几点:

  1. 打包类型:确保 packaging 标签的值为 jar。这是默认值,通常不需要修改。
   <packaging>jar</packaging>
  1. Spring Boot Maven 插件:确保 pom.xml 文件中包含了 Spring Boot 的 Maven 插件。这个插件负责将应用程序打包成可执行的 JAR 文件。
   <build>
       <plugins>
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
           </plugin>
       </plugins>
   </build>
  1. 依赖管理:确保 pom.xml 文件中包含了 Spring Boot 的依赖管理。这通常通过 spring-boot-starter-parentspring-boot-dependencies 来实现。
   <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.7.0</version>
       <relativePath/> <!-- lookup parent from repository -->
   </parent>

或者:

   <dependencyManagement>
       <dependencies>
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-dependencies</artifactId>
               <version>2.7.0</version>
               <type>pom</type>
               <scope>import</scope>
           </dependency>
       </dependencies>
   </dependencyManagement>

2.2 打包命令

在配置好 pom.xml 文件后,你可以使用 Maven 命令将 Spring Boot 应用程序打包成 JAR 文件。打开命令行工具,进入项目的根目录,然后执行以下命令:

mvn clean package

这个命令会执行以下操作:

  1. 清理clean 阶段会删除之前构建生成的文件,确保每次构建都是从干净的状态开始。
  2. 编译compile 阶段会编译项目的源代码。
  3. 测试test 阶段会运行项目的单元测试。
  4. 打包package 阶段会将编译后的代码和资源文件打包成 JAR 文件。

打包完成后,生成的 JAR 文件会位于 target 目录下,文件名通常是 项目名-版本号.jar

2.3 运行 JAR 文件

打包完成后,你可以通过以下命令运行生成的 JAR 文件:

java -jar target/项目名-版本号.jar

这个命令会启动 Spring Boot 应用程序,并监听默认的端口(通常是 8080)。你可以通过浏览器或其他 HTTP 客户端访问应用程序。

3. 自定义 JAR 文件的名称

默认情况下,Maven 会使用 artifactIdversion 来命名生成的 JAR 文件。如果你希望自定义 JAR 文件的名称,可以在 pom.xml 文件中配置 finalName 属性。

<build>
    <finalName>my-custom-name</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

在这个例子中,生成的 JAR 文件将被命名为 my-custom-name.jar

4. 排除不必要的依赖

在某些情况下,你可能希望排除某些依赖,以减少 JAR 文件的大小。你可以通过在 pom.xml 文件中使用 exclusions 标签来排除特定的依赖。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

在这个例子中,spring-boot-starter-tomcat 依赖将被排除,这意味着应用程序将不会使用内嵌的 Tomcat 服务器。

5. 打包时跳过测试

在某些情况下,你可能希望在打包时跳过测试阶段,以加快构建速度。你可以通过在 Maven 命令中添加 -DskipTests 参数来实现这一点。

mvn clean package -DskipTests

这个命令会跳过测试阶段,直接进行打包。

6. 打包时包含依赖

默认情况下,Spring Boot 的 Maven 插件会将所有依赖打包到 JAR 文件中。如果你希望将依赖打包到一个单独的目录中,而不是包含在 JAR 文件中,可以在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <layout>ZIP</layout>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,生成的 JAR 文件将不包含依赖,依赖将被打包到一个单独的 ZIP 文件中。

7. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件(如 application.propertiesapplication.yml)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下,Maven 会自动将它们打包到 JAR 文件中。

如果你希望将配置文件放在 JAR 文件外部,可以在运行 JAR 文件时通过 --spring.config.location 参数指定配置文件的位置。

java -jar target/项目名-版本号.jar --spring.config.location=file:/path/to/config/

8. 打包时包含静态资源

Spring Boot 应用程序通常包含一些静态资源(如 HTML、CSS、JavaScript 文件)。你可以将这些文件放在 src/main/resources/static 目录下,Maven 会自动将它们打包到 JAR 文件中。

9. 打包时包含模板文件

如果你的 Spring Boot 应用程序使用了模板引擎(如 Thymeleaf、Freemarker 等),你可以将模板文件放在 src/main/resources/templates 目录下,Maven 会自动将它们打包到 JAR 文件中。

10. 打包时包含其他资源

除了静态资源和模板文件外,你可能还需要将其他资源文件(如 XML 配置文件、JSON 文件等)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下的任何位置,Maven 会自动将它们打包到 JAR 文件中。

11. 打包时排除某些文件

在某些情况下,你可能希望排除某些文件或目录,以避免它们被打包到 JAR 文件中。你可以通过在 pom.xml 文件中配置 maven-resources-plugin 插件来实现这一点。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <excludes>
                    <exclude>**/exclude-dir/**</exclude>
                    <exclude>**/exclude-file.txt</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,exclude-dir 目录和 exclude-file.txt 文件将被排除,不会被打包到 JAR 文件中。

12. 打包时包含外部库

在某些情况下,你可能希望将外部的 JAR 文件打包到 Spring Boot 的 JAR 文件中。你可以将这些 JAR 文件放在 src/main/resources/lib 目录下,然后在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,lib 目录下的 JAR 文件将被包含在生成的 JAR 文件中。

13. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件打包到 JAR 文件中。你可以将这些文件放在 src/main/resources/config 目录下,Maven 会自动将它们打包到 JAR 文件中。

14. 打包时包含外部资源

除了配置文件和静态资源外,你可能还需要将其他外部资源(如图片、视频等)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下的任何位置,Maven 会自动将它们打包到 JAR 文件中。

15. 打包时包含外部库

在某些情况下,你可能希望将外部的 JAR 文件打包到 Spring Boot 的 JAR 文件中。你可以将这些 JAR 文件放在 src/main/resources/lib 目录下,然后在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,lib 目录下的 JAR 文件将被包含在生成的 JAR 文件中。

16. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件打包到 JAR 文件中。你可以将这些文件放在 src/main/resources/config 目录下,Maven 会自动将它们打包到 JAR 文件中。

17. 打包时包含外部资源

除了配置文件和静态资源外,你可能还需要将其他外部资源(如图片、视频等)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下的任何位置,Maven 会自动将它们打包到 JAR 文件中。

18. 打包时包含外部库

在某些情况下,你可能希望将外部的 JAR 文件打包到 Spring Boot 的 JAR 文件中。你可以将这些 JAR 文件放在 src/main/resources/lib 目录下,然后在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,lib 目录下的 JAR 文件将被包含在生成的 JAR 文件中。

19. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件打包到 JAR 文件中。你可以将这些文件放在 src/main/resources/config 目录下,Maven 会自动将它们打包到 JAR 文件中。

20. 打包时包含外部资源

除了配置文件和静态资源外,你可能还需要将其他外部资源(如图片、视频等)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下的任何位置,Maven 会自动将它们打包到 JAR 文件中。

21. 打包时包含外部库

在某些情况下,你可能希望将外部的 JAR 文件打包到 Spring Boot 的 JAR 文件中。你可以将这些 JAR 文件放在 src/main/resources/lib 目录下,然后在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,lib 目录下的 JAR 文件将被包含在生成的 JAR 文件中。

22. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件打包到 JAR 文件中。你可以将这些文件放在 src/main/resources/config 目录下,Maven 会自动将它们打包到 JAR 文件中。

23. 打包时包含外部资源

除了配置文件和静态资源外,你可能还需要将其他外部资源(如图片、视频等)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下的任何位置,Maven 会自动将它们打包到 JAR 文件中。

24. 打包时包含外部库

在某些情况下,你可能希望将外部的 JAR 文件打包到 Spring Boot 的 JAR 文件中。你可以将这些 JAR 文件放在 src/main/resources/lib 目录下,然后在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,lib 目录下的 JAR 文件将被包含在生成的 JAR 文件中。

25. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件打包到 JAR 文件中。你可以将这些文件放在 src/main/resources/config 目录下,Maven 会自动将它们打包到 JAR 文件中。

26. 打包时包含外部资源

除了配置文件和静态资源外,你可能还需要将其他外部资源(如图片、视频等)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下的任何位置,Maven 会自动将它们打包到 JAR 文件中。

27. 打包时包含外部库

在某些情况下,你可能希望将外部的 JAR 文件打包到 Spring Boot 的 JAR 文件中。你可以将这些 JAR 文件放在 src/main/resources/lib 目录下,然后在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,lib 目录下的 JAR 文件将被包含在生成的 JAR 文件中。

28. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件打包到 JAR 文件中。你可以将这些文件放在 src/main/resources/config 目录下,Maven 会自动将它们打包到 JAR 文件中。

29. 打包时包含外部资源

除了配置文件和静态资源外,你可能还需要将其他外部资源(如图片、视频等)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下的任何位置,Maven 会自动将它们打包到 JAR 文件中。

30. 打包时包含外部库

在某些情况下,你可能希望将外部的 JAR 文件打包到 Spring Boot 的 JAR 文件中。你可以将这些 JAR 文件放在 src/main/resources/lib 目录下,然后在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,lib 目录下的 JAR 文件将被包含在生成的 JAR 文件中。

31. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件打包到 JAR 文件中。你可以将这些文件放在 src/main/resources/config 目录下,Maven 会自动将它们打包到 JAR 文件中。

32. 打包时包含外部资源

除了配置文件和静态资源外,你可能还需要将其他外部资源(如图片、视频等)打包到 JAR 文件中。你可以将这些文件放在 src/main/resources 目录下的任何位置,Maven 会自动将它们打包到 JAR 文件中。

33. 打包时包含外部库

在某些情况下,你可能希望将外部的 JAR 文件打包到 Spring Boot 的 JAR 文件中。你可以将这些 JAR 文件放在 src/main/resources/lib 目录下,然后在 pom.xml 文件中配置 spring-boot-maven-plugin 插件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

在这个例子中,lib 目录下的 JAR 文件将被包含在生成的 JAR 文件中。

34. 打包时包含外部配置文件

在某些情况下,你可能希望将外部的配置文件打包到 JAR 文件中。你可以将这些文件放在 `

推荐阅读:
  1. SpringBoot如何集成Apollo配置中心
  2. springboot + rabbitmq 做智能家居,我也没想到会这么简单

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springboot jar

上一篇:电脑找不到wifi网络如何解决

下一篇:springboot怎么开启一个监听线程执行任务

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》