SpringBoot 使用 Maven 打包

王柳  金牌会员 | 2023-11-17 22:10:08 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 908|帖子 908|积分 2724

1. maven打包方式

maven打包有三种方式 pom、jar、war。在pom.xml 文件中声明的方式分别如下:
  1. <packaging>pom</packaging>`
  2. <packaging>jar</packaging>
  3. <packaging>war</packaging>
复制代码
以上三种打包方式不同出现在同一个 pom 文件中。
pom:用在父级工程或聚合工程中,必须指明打包方式为pom。子module可继承父工程依赖。
jar:工程的默认打包方式。
war:将会打包成war。
2. maven打包插件
  1. maven-jar-plugin
  2. maven-shade-plugin
  3. maven-assembly-plugin
  4. spring-boot-maven-plugin
复制代码
3. SpringBoot 打包

Spring Boot 中默认打包成可执行 jar ,可以通过 java -jar xxx.jar 命令执行但是不可以被其他的应用所依赖。普通的 jar 不可以通过 java -jar xxx.jar 命令执行,普通的 jar 主要是被其他应用或模块依赖。
  1. <build>
  2.     <plugins>
  3.         <plugin>
  4.             <groupId>org.springframework.boot</groupId>
  5.             <artifactId>spring-boot-maven-plugin</artifactId>
  6.         </plugin>
  7.     </plugins>
  8. </build>
复制代码
如上springboot引导程序生成的pom.xml文件中默认的maven插件,其打包的Jar包可以直接运行,但是不可依赖!
如果子模块被打包成可运行 jar 包则 SpringBoot 项目编译运行时提示“程序包xxx不存在,找不到符号”错误。我们可以通过exec标签在打包的时候生成普通jar包和可执行jar包,修改如下:
  1. <build>
  2.     <plugins>
  3.         <plugin>
  4.             <groupId>org.springframework.boot</groupId>
  5.             <artifactId>spring-boot-maven-plugin</artifactId>
  6.         </plugin>
  7.     </plugins>
  8. </build>                exec                        
复制代码
或者通过true标签在打包的时候生成普通jar包,修改如下:
  1. <build>
  2.     <plugins>
  3.         <plugin>
  4.             <groupId>org.springframework.boot</groupId>
  5.             <artifactId>spring-boot-maven-plugin</artifactId>
  6.         </plugin>
  7.     </plugins>
  8. </build>                true                        
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表