idea打包操作

本文介绍了SpringBoot项目使用Maven进行War和Jar包打包的两种方式,包括快捷键和命令行操作,并提供了已测试过的Maven插件配置。在多模块项目中,遇到依赖问题时,需在父模块和子模块的pom.xml中添加相应配置。此外,还讨论了SpringBoot War包和Jar包的区别及转换方法。
摘要由CSDN通过智能技术生成

方式一

打war包快捷键:Ctrl+Shift+Alt+S
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原文链接:https://www.cnblogs.com/luzhanshi/p/10924640.html

方式二:通过maven插件打包

maven构建过程,Lifecycle

mvn clean ----- 【清理】 将编译(mvn compile)产生的【target】文件夹删除掉,但是不会删除本地的maven仓库已经生成的jar文件。

mvn compile — 【编译】在项目根目录生【target】目录,里面包含【classes】文件夹,里面是已经编译好的java类(.class文件)

mvn test-------- 【测试】会先生成target文件夹,里面有【classes】和【test-classes】文件夹,所 以执行mvn test命令时,会先编译项目,在执行测试代码

mvn package----【打包】看到项目的根目录下【编译】后生成的【target】文件夹中多了一个Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是打包成功之后Maven帮我们生成的jar文件,package命令会先执行编译再执行打包

mvn install -----就是把maven构建项目的【清理clean】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是"mvn install",这个命令能做的事情最多,所以这个最常用

maven在执行一个生命周期的命令的是时候将会执行之前的所有生命周期操作,比如执行mvn install,会执行前面一系列的动作包括 compile , package , test 等,具体请查看maven的官方文档。这个特性使maven的命令更加简洁易用。

详细请参考:

maven的debugg信息非常完备,需要查看debug信息只要在命令后面添加 -X 参数即可,如:
mvn clean package -X 就能看到非常丰富的DEBUG信息。

已测试过可用的build配置

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.5.5</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>

            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>


    </build>

使用idea自带的打包方式(多module时maven打包插件不管用)

问题1:项目近期要上线,在对SpringCloud项目进行打包时,先是打包报错,找不到依赖的entity、utils等module项目

解决1:此情况下,IDEA打包顺序应该为:clean–>compile–>install,好了,打包完成。但是遇到问题2

问题2:项目在IDEA中可以正常运行,但是打包后运行jar包,还是找不到依赖module的CLASS

解决2:在parent(也就是父module)的pom.xml文件中,加入如下代码:

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

在被依赖的项目中(公共module项目,比如:utils、entity、cloud等等)的pom.xml文件中加入:

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

原文链接

在打包spring boot项目时,需要使用如下插件:

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

如果在用maven构建多模块项目时,不要将此插件放到parent pom中,否则如果有sub module不是spring boot应用,在打包时就会出错。只将该插件添加到是spring boot项目的子模块。

Springboot项目打成War包和Jar包的区别以及如何转换

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值