Spring Boot的Maven插件Spring Boot Maven plugin详解
来源:互联网 发布:青海藏语广播网络电视 编辑:程序博客网 时间:2024/06/09 18:33
Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。
Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用。
Spring Boot Maven plugin的最新版本为2017.6.8发布的1.5.4.RELEASE,要求Java 8, Maven 3.2及以后。
1. Spring Boot Maven plugin的5个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
2. 配置pom.xml文件
3.mvn package spring-boot:repackage说明
Spring Boot Maven plugin的最主要goal就是repackage,其在Maven的package生命周期阶段,能够将mvn package生成的软件包,再次打包为可执行的软件包,并将mvn package生成的软件包重命名为*.original。
基于上述配置,对一个生成Jar软件包的项目执行如下命令。
可以看到生成的两个jar文件,一个是*.jar,另一个是*.jar.original。
在执行上述命令的过程中,Maven首先在package阶段打包生成*.jar文件;然后执行spring-boot:repackage重新打包,查找Manifest文件中配置的Main-Class属性,如下所示:
注意,其中的Main-Class属性值为org.springframework.boot.loader.JarLauncher;
Start-Class属性值为com.ericsson.ramltest.MyApplication。
其中com.ericsson.ramltest.MyApplication类中定义了main()方法,是程序的入口。
通常,Spring Boot Maven plugin会在打包过程中自动为Manifest文件设置Main-Class属性,事实上该属性究竟作用几何,还可以受Spring Boot Maven plugin的配置属性layout控制的,示例如下。
注意,这里的layout属性值为ZIP。layout属性的值可以如下:
- JAR,即通常的可执行jar
- WAR,即通常的可执行war,需要的servlet容器依赖位于WEB-INF/lib-provided
- ZIP,即DIR,类似于JAR
- MODULE,将所有的依赖库打包(scope为provided的除外),但是不打包Spring Boot的任何Launcher。
- NONE,将所有的依赖库打包,但是不打包Spring Boot的任何Launcher。
4.integration-test阶段中的Spring Boot Maven plugin的start/stop
注意,it.skip变量用作是否跳过integration-test的标志位。maven-failsafe-plugin用作integration-test的主要执行目标。
spring-boot-maven-plugin用以为integration-test提供支持。
执行integration-test的Maven命令如下:
mvn verify
或者
mvn verify -Dit.skip=false
参考链接:
http://docs.spring.io/spring-boot/docs/1.5.4.RELEASE/maven-plugin/
https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html
- Spring Boot的Maven插件Spring Boot Maven plugin详解
- Spring Boot的Maven插件Spring Boot Maven plugin详解
- Spring Boot的Maven插件Spring Boot Maven plugin详解
- spring-boot-maven-plugin 插件的作用
- spring-boot-maven-plugin插件的作用
- spring boot maven 插件
- VIII. Spring Boot Maven插件
- Spring Boot Maven Plugin -- repackage目标
- Spring Boot Maven Plugin -- repackage鐩?爣
- Spring Boot Maven Plugin -- repackage鐩?爣
- Spring Boot系列(四)Spring Boot Maven插件
- 关于 Spring boot 项目 偶然遇到 Failure to transfer org.springframework.boot:spring-boot-maven-plugin 问题的解决办法
- maven构建Spring Boot
- spring boot maven集成
- spring boot集成mybatis-generator-maven-plugin和通用mapper
- spring boot和maven的学习
- maven打包案例-spring boot
- Maven搭建Spring Boot JDBC
- 使用tensorflow object detection API 进行物体识别
- javawebday17(图片验证 Servlet简介)
- Docker学习笔记——简介
- Hibernate 基础介绍
- TransactionManagementError("An error occurred in the current transaction. You can't execute queries
- Spring Boot的Maven插件Spring Boot Maven plugin详解
- 实验三 顺序队列与链队列
- [Python 实战]
- 1031. 查验身份证(15)
- MySQL的安装和与Python的连接(Ubuntu)
- 第8周项目4-稀疏矩阵的三元组表示的实现及应用(1)
- shell 具体的操作
- Strust2使用领域 对象接收用户输λ
- Java多线程编程-(10)-单例模式几种写法的错与对