springboot工程中maven插件浅析

springboot工程中都会配置插件进行编译、打包等操作,下面对常用的maven插件进行简单分析。
一、spring-boot-maven-plugin
spring-boot-maven-plugin能够以maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行maven操作的可能;能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用。
spring-boot-maven-plugin提供了7个Goals:

  • spring-boot:repackage,默认goal。在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.origin;
  • spring-boot:run,运行Spring Boot应用;
  • spring-boot:start,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理;
  • spring-boot:stop,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理;
  • spring-boot:build-info,生成Actuator使用的构建信息文件build-info.properties;
  • spring-boot:build-help,Display help information on spring-boot-maven-plugin.
    Call mvn spring-boot:help -Ddetail=true -Dgoal= to display
    parameter details.
  • spring-boot:build-image
    在这里插入图片描述
    repackage就是在maven的package生命周期阶段,能够将mvn package生成的软件包,再次打包为可执行的软件包,并将mvn package生成的软件包重命名为*.original。

二、maven-compiler-plugin
maven-compiler-plugin插件配置了java的开发环境和运行环境,还有文件编码。

<build>
    <plugins>
        <!-- 配置当前项目的jdk版本信息 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

三、maven-surefire-plugin
maven-surefire-plugin插件用于mvn 生命周期的测试阶段的插件,可以通过一些参数设置方便的在testNG或junit下对测试阶段进行自定义。
maven本身并不是一个单元测试框架,maven所做的只是在构建执行到特定生命周期阶段的时候,通过插件来执行jUnit或者testNG的测试用例。注意需要跳过单元测试,如果工程里存在对数据库进行操作的单元测试必须要使用以下配置将之跳过。

			<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

maven打包springboot应用的插件配置

  • 普通jar,用于项目依赖引入,不能通过java -jar xx.jar执行,一般不包含其它依赖的jar包。
  • 不可执行jar,包含第三方依赖的jar包,避免生成的jar与第三方引入后出现依赖版本冲突。
  • 可执行jar,是一种可执行的jar(executable jar),既包含自己代码中的class ,也包含第三方依赖的jar。
    1、生成单个可执行jar,使用springboot提供的maven打包插件spring-boot-maven-plugin即可,pom文件的配置如下:
<build>
    <plugins>
        <!-- 常规打包,打出来的jar很大,不易于修改部分文件后增量发布 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!-- 作用:项目打成jar的同时将本地jar包也引入进去 -->
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>

2、提供给第三方使用的,包含所有依赖的普通jar,使用maven打包插件maven-shade-plugin,pom文件的配置如下:

<build>
    <plugins>
        <!-- 提供给第三方使用的,包含所有依赖的普通jar -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <!-- 加入启动类 -->
                        <!--<transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>xxx.xxx</mainClass>
                            </transformer>
                        </transformers>-->
                        <createDependencyReducedPom>false</createDependencyReducedPom>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

3、提供给第三方使用的,仅包含项目代码的普通jar,使用maven打包插件maven-jar-plugin,pom文件的配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
            </manifest>
        </archive>
    </configuration>
</plugin>
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值