SpringBoot 使用 Maven 打包方式

 更新时间:2023年10月27日 09:51:26   作者:快乐随行  
maven打包有三种方式 pom、jar、war,本篇文章给大家介绍SpringBoot 使用 Maven 打包方式,结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

1. maven打包方式

maven打包有三种方式 pom、jar、war。在pom.xml 文件中声明的方式分别如下:

<!-- 1. pom方式 -->
<packaging>pom</packaging>`
<!-- 2. jar方式 -->
<packaging>jar</packaging>
<!-- 3. war方式 -->
<packaging>war</packaging>

以上三种打包方式不同出现在同一个 pom 文件中。

pom:用在父级工程或聚合工程中,必须指明打包方式为pom。子module可继承父工程依赖。

jar:工程的默认打包方式。

war:将会打包成war。

2. maven打包插件

<!-- 1. maven 默认打包插件,用来创建 project jar -->
maven-jar-plugin
<!-- 2. 用来打可执行包 -->
maven-shade-plugin
<!-- 3. 支持定制化打包方式,例如 apache 项目的打包方式 -->
maven-assembly-plugin
<!-- 4. springboot打包插件 -->
spring-boot-maven-plugin

3. SpringBoot 打包

Spring Boot 中默认打包成可执行 jar ,可以通过 java -jar xxx.jar 命令执行但是不可以被其他的应用所依赖。普通的 jar 不可以通过 java -jar xxx.jar 命令执行,普通的 jar 主要是被其他应用或模块依赖。

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

如上springboot引导程序生成的pom.xml文件中默认的maven插件,其打包的Jar包可以直接运行,但是不可依赖!

如果子模块被打包成可运行 jar 包则 SpringBoot 项目编译运行时提示“程序包xxx不存在,找不到符号”错误。我们可以通过<classifier>exec</classifier>标签在打包的时候生成普通jar包和可执行jar包,修改如下:

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

或者通过<skip>true</skip>标签在打包的时候生成普通jar包,修改如下:

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

到此这篇关于SpringBoot 使用 Maven 打包的文章就介绍到这了,更多相关SpringBoot 使用 Maven 打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java控制台实现拼图游戏

    java控制台实现拼图游戏

    这篇文章主要为大家详细介绍了java控制台实现拼图游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java文件复制多种方法实例代码

    Java文件复制多种方法实例代码

    近期用到文件复制,虽然程序很简单,因为时间久了淡忘了,所以写一篇文章记录一下,下面这篇文章主要给大家介绍了关于Java文件复制多种方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 关于maven项目中使用BCrypt加密方式

    关于maven项目中使用BCrypt加密方式

    BCrypt是一种基于Blowfish加密算法的密码散列函数,用于安全存储和验证用户密码,它通过引入盐和工作因子增加计算复杂度,有效防止彩虹表攻击和破解,BCrypt具备适应性工作因子、成本参数调整、迭代哈希和密钥扩展等特点,被广泛应用于Web应用程序的安全性设计中
    2024-10-10
  • 详细聊一聊Java中的包机制

    详细聊一聊Java中的包机制

    这篇文章主要介绍了Java中包机制的相关资料,Java包机制通过定义、命名和组织类,防止命名冲突,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-05-05
  • java 多线程-线程通信实例讲解

    java 多线程-线程通信实例讲解

    本文主要介绍java 多线程-线程通信 这里整理了相关资料及示例代码,有兴趣的小伙伴可以参考下
    2016-09-09
  • SpringBoot+Redis防止恶意刷新与暴力请求接口的实现

    SpringBoot+Redis防止恶意刷新与暴力请求接口的实现

    这篇文章主要为大家介绍了如何利用springboot和Redis来实现防止恶意刷新与暴力请求接口,文中的示例代码讲解详细,需要的可以参考一下
    2022-06-06
  • 解析java创建对象的全过程

    解析java创建对象的全过程

    文章总结了Java创建对象的几种方式,包括使用new关键字、反射、clone和反序列化,此外,还详细描述了创建对象的过程,包括类加载、内存分配和对象初始化,最后,强调了并发情况下的操作原子性问题
    2025-12-12
  • Java的osgi从基础到实践

    Java的osgi从基础到实践

    OSGi是Java的动态模块化系统,通过Bundle实现模块化部署与依赖管理,支持运行时动态安装、更新和卸载,提供服务注册与发现机制,解决JAR地狱问题,适用于企业级和嵌入式系统开发,本文给大家介绍Java的osgi从基础到实践,感兴趣的朋友一起看看吧
    2025-09-09
  • EasyExcel自定义导出列和顺序实例代码

    EasyExcel自定义导出列和顺序实例代码

    这篇文章主要给大家介绍了关于EasyExcel自定义导出列和顺序的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Mac下如何查看已安装的jdk版本及其安装目录

    Mac下如何查看已安装的jdk版本及其安装目录

    这篇文章主要介绍了Mac下如何查看已安装的jdk版本及其安装目录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11

最新评论