Java-Spring Boot Maven Plugin

简介: ​Spring Boot Maven Plugin 总结一下下!

Spring Boot Maven Plugin 总结一下下!

    1.  初识Spring Boot Maven Plugin
    2. 自定义属性、默认值以及在命令行上SpringBoot开头的命令上覆盖属性
    3. Spring Boot Maven Plugin打包的一些配置。
    4. Spring Boot Maven Plugin对包中的内容进行layers-分层。
    5. 还没发,去下面扫描关注公众号看吧。

    上面只玩了SpringBoot:repackage的一些东西,其实还有很多没玩。比如:

    • spring-boot:start
    • spring-boot:stop
    • spring-boot:help
    • spring-boot:build-info
    • mvn spring-boot:build-image
    • spring-boot:run

    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

    打镜像以后会补充上,不过要到系统学完docker以后再说了。


    下面是翻译的文档,大致扫了一眼,可以直接去官方文档学习,我就留个备份。


    https://docs.spring.io/spring-boot/docs/2.5.x/maven-plugin/reference/htmlsingle/#introduction

    使用Maven运行您的应用程序

    该插件包括一个运行目标,可用于从命令行启动您的应用程序,如以下示例所示:

    $ mvn spring-boot:run

    可以使用arguments参数指定应用程序参数,还明确支持系统属性和环境变量。

    如果需要指定一些JVM参数(即出于调试目的),则可以使用该jvmArguments参数

    默认情况下,应用程序是在分支过程中执行的,并且在命令行上设置属性不会影响该应用程序。

    由于启用配置文件非常普遍,因此有一个专用的profiles属性可为其提供快捷方式-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"

    尽管不建议这样做,但是可以通过禁用该fork属性直接从Maven JVM执行应用程序。这样做意味着的jvmArguments,systemPropertyVariables,environmentVariables和agents选项都将被忽略。

    在devtools运行时,它会在重新编译应用程序时检测到更改并自动刷新它。这不仅适用于资源,而且适用于代码。它还提供了LiveReload服务器,以便它可以在发生任何变化时自动触发浏览器刷新。

    还可以将Devtools配置为仅在静态资源发生更改时刷新浏览器(并忽略代码中的任何更改)。只需在您的项目中包含以下属性:

    spring.devtools.remote.restart.enabled=false

    在此之前devtools,该插件默认情况下支持资源的热刷新,现在已禁用它,以支持上述解决方案。您可以随时通过配置项目来还原它:

    <build>

       <plugins>

           <plugin>

               <groupId>org.springframework.boot</groupId>

               <artifactId>spring-boot-maven-plugin</artifactId>

               <configuration>

                   <addResources>true</addResources>

               </configuration>

           </plugin>

       </plugins>

    </build>

    当addResources启用时,任何src/main/resources当你运行应用程序,并在任何重复found目录将被添加到应用程序类路径target/classes将被删除。这样可以热刷新资源,这在开发Web应用程序时非常有用。例如,您可以处理HTML,CSS或JavaScript文件,并且无需重新编译应用程序即可立即查看更改。这也是允许您的前端开发人员工作而无需下载和安装Java IDE的一种有用方法。

    使用此功能的副作用是在构建时无法进行资源过滤。

    为了与repackage目标保持一致,目标run以这样的方式构建类路径:插件配置中排除的任何依赖项也将从类路径中排除。

    有时在运行应用程序时包含测试依赖项很有用。例如,如果要在使用存根类的测试模式下运行应用程序。如果您希望这样做,可以将useTestClasspath参数设置为true。

    这仅在运行应用程序时适用:repackage目标不会将测试依赖项添加到生成的JAR / WAR中。

    spring-boot:run

    org.springframework.boot:spring-boot-maven-plugin:2.5.0-RC1

    在适当位置运行应用程序。

    必填参数

    classesDirectory    File    ${project.build.outputDirectory}    

    包含应打包到归档文件中的类和资源文件的目录。

    可选参数

    addResources    boolean    false    

    直接将Maven资源添加到类路径,这允许实时就地编辑资源。target/classes如果ClassLoader.getResources()调用了重复资源,则会阻止重复的资源出现两次。请考虑添加spring-boot-devtools到您的项目中,因为它提供了此功能以及更多其他功能。

    属性 spring-boot.run.addResources

    agents    File[]    

    代理包的路径。注意:要使用此功能,需要进行分叉的过程。属性 spring-boot.run.agents

    arguments    String[]    

    应该传递给应用程序的参数。

    commandlineArguments    String    

    命令行中应传递给应用程序的参数。使用空格分隔多个参数,并确保在引号之间包含多个值。指定后,优先于#arguments。属性 spring-boot.run.arguments

    directories    String[]    

    除了类目录之外的其他目录,应添加到类路径中。属性spring-boot.run.directories

    environmentVariables    Map    

    应与用于运行应用程序的分叉进程相关联的环境变量列表。注意:要使用此功能,需要进行分叉的过程。

    excludeGroupIds    String    

    用逗号分隔的要排除的groupId名称列表(完全匹配)。属性 spring-boot.excludeGroupIds

    excludes    List    

    要排除的artifact定义的集合。该Exclude元素定义强制性groupId和artifactId性质和可选classifier性。属性spring-boot.excludes

    fork    boolean    true    

    指示是否应分叉运行进程的标志。禁用分叉将禁用某些功能,例如代理,自定义JVM参数,devtools或指定要使用的工作目录。属性 spring-boot.run.fork

    includes    List    

    要包括的artifact定义的集合。该Include元素定义强制性groupId和artifactId性质以及可选的强制性groupId和artifactId性质和可选classifier性。属性spring-boot.includes

    jvmArguments    String    

    应该与用于运行应用程序的分叉进程相关联的JVM参数。在命令行上,请确保在引号之间包含多个值。注意:要使用此功能,需要进行分叉的过程。属性 spring-boot.run.jvmArguments

    mainClass    String    

    主类的名称。如果未指定,将使用找到的第一个包含“ main”方法的编译类。属性 spring-boot.run.main-class

    noverify    boolean    

    标记为该代理需要-noverify。属性spring-boot.run.noverify

    optimizedLaunch    boolean    true    

    是否应该优化JVM的启动。属性 spring-boot.run.optimizedLaunch

    profiles    String[]    

    弹簧轮廓激活。指定“ spring.profiles.active”参数的便捷快捷方式。在命令行上使用逗号分隔多个配置文件。属性spring-boot.run.profiles

    skip    boolean    false    

    跳过执行。属性spring-boot.run.skip

    systemPropertyVariables    Map    

    传递给进程的JVM系统属性列表。注意:要使用此功能,需要进行分叉的过程。

    useTestClasspath    Boolean    false    

    运行时进行标记以包括测试类路径。属性spring-boot.run.useTestClasspath

    workingDirectory    File    

    该应用程序要使用的当前工作目录。如果未指定,将使用basedir。注意:要使用此功能,需要进行分叉的过程。属性spring-boot.run.workingDirectory

    spring-boot:start

    org.springframework.boot:spring-boot-maven-plugin:2.5.0-RC1

    启动spring应用程序。与run目标相反,这不会阻止并允许其他目标在应用程序上运行。此目标通常用于集成测试方案中,在该方案中,应用程序在测试套件之前启动,然后在测试套件之后停止。

    spring-boot:help

    org.springframework.boot:spring-boot-maven-plugin:2.5.0-RC1

    在spring-boot-maven-plugin上显示帮助信息。调用mvn spring-boot:help -Ddetail=true -Dgoal=<goal-name>以显示参数详细信息。

    detail boolean false

    如果为true,则显示每个目标的所有可设置属性。

    用户属性detail

    goal String

    要显示帮助的目标的名称。如果未指定,将显示所有目标。属性 goal

    indentSize   int   2  

    每个压痕级别的空格数应为正。属性 indentSize

    lineLength  int   80

    显示行的最大长度应为正。属性lineLength

    END


    目录
    相关文章
    |
    8月前
    |
    Java Maven 微服务
    微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的 maven 依赖
    在项目中使用Swagger2工具时,需导入Maven依赖。尽管官方最高版本为2.8.0,但其展示效果不够理想且稳定性欠佳。实际开发中常用2.2.2版本,因其稳定且界面友好。以下是围绕2.2.2版本的Maven依赖配置,包括`springfox-swagger2`和`springfox-swagger-ui`两个模块。
    342 0
    |
    6月前
    |
    Java 测试技术 项目管理
    【JavaEE】从 0 到 1 掌握 Maven 构建 Java 项目核心技巧 解锁 Java 项目高效管理实用实例
    本文从Maven基础概念讲起,涵盖安装配置、核心概念(如POM与依赖管理)及优化技巧。结合Java Web项目实例,演示如何用Maven构建和管理项目,解决常见问题,助你高效掌握这一强大工具,提升Java开发与项目管理能力。适合初学者及进阶开发者学习。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
    240 6
    |
    10月前
    |
    XML Java 应用服务中间件
    Spring Boot 两种部署到服务器的方式
    本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
    2557 17
    Spring Boot 两种部署到服务器的方式
    |
    Java Maven 容器
    java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
    java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
    |
    8月前
    |
    Java 数据库 微服务
    微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
    在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
    351 0
    |
    10月前
    |
    前端开发 JavaScript Java
    Java构建工具-maven的复习笔记【适用于复习】
    这篇文档由「潜意识Java」创作,主要介绍Maven的相关知识。内容涵盖Maven的基本概念、作用、项目导入步骤、依赖管理(包括依赖配置、代码示例、总结)、依赖传递、依赖范围以及依赖的生命周期等七个方面。作者擅长前端开发,秉持“得之坦然,失之淡然”的座右铭。期待您的点赞、关注和收藏,这将是作者持续创作的动力! [个人主页](https://blog.csdn.net/weixin_73355603?spm=1000.2115.3001.5343)
    284 3
    |
    SQL JSON Java
    mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
    这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
    515 1
    mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
    |
    存储 运维 安全
    Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
    通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
    714 2
    |
    Java Maven Android开发
    【Azure Developer】VS Code打包Java maven Project 遇见 BUILD FAILURE
    Unknown lifecycle phase "lean". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>
    255 5
    |
    Java Shell Maven
    Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
    Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
    673 4

    推荐镜像

    更多
    下一篇
    oss云网关配置