`

Spring Boot(02)——Maven插件

阅读更多

Spring Boot Maven插件

Spring Boot提供了一个Maven插件,在指定了spring-boot-starter-parent为项目的parent后,在项目中可以进行如下定义来配置Spring Boot的Maven插件。该plugin主要提供了两个goal,run和repackage,run用来运行当前Spring Boot工程,repackage则用来将项目重新打包。

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

run

需要通过Maven插件启动spring boot项目时,可以运行如下命令。

mvn spring-boot:run

在运行的过程中也可以加入一些控制参数,比如下面的代码就通过jvmArguments参数指定了运行JVM的堆内存的最大值是512M。关于更多可以配置的参数可以参考https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/maven-plugin/run-mojo.html

 mvn spring-boot:run -Dspring-boot.run.jvmArguments=-Xmx512m

repackage

需要使用repackage进行重新打包时需要在定义plugin时进行如下定义。

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

然后只需要运行正常的mvn package打包指令就可以触发插件的repackage指令进行重新打包。Spring Boot插件的repackage指令会将项目中相关的jar包都打到一个jar包里面,即jar包里面又包含jar包。打包后的jar包的主运行程序类将是Spring Boot提供的org.springframework.boot.loader.JarLauncher。然后可以使用java -jar your_java_file.jar运行打包好的jar包了。比如打包好的jar包的名称是app.jar,则可以使用下面的指令运行该jar包。

java -jar app.jar

假设在打包的时候有一个jar包是不需要包含的,可以通过execlude指定需要排除的包,如下则指定了需要排除org.projectlombok::lombok包。

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <excludes>
            <exclude>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </exclude>
        </excludes>
    </configuration>
</plugin>

如果是需要排除某一个groupId对应的所有的jar包,则可以使用excludeGroupIds进行指定。如下代码则指定了打包时将排除所有的groupId为org.springframework的包。

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

关于repackage指令可以指定的完整参数,请参考https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/maven-plugin/repackage-mojo.html

参考文档

https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/maven-plugin/index.html

(注:本文是基于Spring Boot 2.0.3所写)

 

本文转自:http://elim.iteye.com/blog/2432574

分享到:
评论

相关推荐

    Spring in Action 使用Maven 构建Spring 工程

    此外,Maven还支持多种插件,如Spring Boot Maven插件,可以简化Spring Boot应用的构建和运行。 在实际开发中,Maven的 profiles 特性也十分有用。你可以为不同的环境(如开发、测试、生产)定义不同的配置,如...

    spring-boot-reference-guide-zh

    - **使用Maven插件运行**:指导如何通过Maven插件启动Spring Boot应用。 - **使用Gradle插件运行**:通过Gradle插件启动Spring Boot应用的方法。 - **热交换**:介绍Spring Boot应用的热部署机制,使开发者能够在...

    Spring Boot参考指南.pdf

    - **使用Spring Boot Maven插件**:指导如何使用Spring Boot的Maven插件进行构建。 - **Gradle**:讲解如何使用Gradle构建工具。 - **Ant**:虽然较少提及,但也支持使用Ant进行构建。 - **Starters**:介绍...

    生成一个简单的Spring Boot应用程序.pdf

    - **插件配置**:自动配置Maven插件,如spring-boot-maven-plugin,方便打包和运行Spring Boot应用。 5. **Spring Boot应用程序的目录结构** - **项目目录**:建议为项目创建单独的目录。 - **源代码目录**:...

    dubbo——与spring boot整合1

    由于Spring Boot项目中我们通常使用Maven管理依赖,因此我们需要在`pom.xml`文件中添加对应的依赖项。 #### 服务提供者(Provider) 对于服务提供者,我们需要引入以下依赖: 1. **dubbo-starter**:这是Spring ...

    java程序设计-Java坦克大战游戏源码,基于Spring Boot,JDK8,Swing组件开发(源码+说明文档)

    java程序设计——Java坦克大战游戏源码,基于Spring Boot,JDK8,Swing组件开发 ## 介绍 ###### Java坦克大战游戏,基于Spring Boot,JDK8,Swing组件开发 ## 安装执行 ###### 1、下载源码,在根目录执行maven...

    springboot_jsp_maven(war+jar).rar

    【标题】"springboot_jsp_maven(war+jar)"是一个综合了Spring Boot、JSP和Maven技术的示例项目,旨在展示如何在Spring Boot框架下开发并部署包含Web界面的应用程序。该项目的独特之处在于它同时支持两种常见的部署...

    Spring Boot 视频

    接着,我们将深入研究Spring Boot的配置文件——`application.properties`或`application.yml`。这些文件允许开发者覆盖默认配置,定制化应用的行为。例如,你可以通过配置文件来指定数据库连接信息、服务器端口、...

    java-examples-spring-boot-base-java-15-maven:Java示例Spring Boot Base Project Java 15 Maven

    本项目——"java-examples-spring-boot-base-java-15-maven",旨在展示如何使用Java 15和Maven来搭建一个基础的Spring Boot应用。 首先,我们来看项目的核心——Spring Boot。Spring Boot是Spring框架的一部分,它...

    multiboot:具有多个Maven模块的示例Spring Boot应用程序

    本文将深入探讨如何使用Maven和Spring Boot构建一个多模块的应用实例——"multiboot"。 一、理解Spring Boot与Maven 1. Spring Boot:Spring Boot简化了Spring应用的初始搭建以及开发过程,它默认配置了很多常见的...

    SpringBoot

    - **使用Spring Boot Maven插件**:介绍Spring Boot Maven插件的功能及使用方法。 - **Gradle配置**:提供了Gradle相关的配置示例,帮助开发者更高效地管理Gradle项目。 - **Ant配置**:虽然较少使用,但仍然提供...

    apachemaven 3.3.9 版本

    Apache Maven 3.3.9 是一个非常重要的版本,在Java开发领域中被广泛使用,尤其对于Spring Boot项目构建而言更是不可或缺。Maven是一个强大的项目管理工具,它通过使用一种标准化的项目对象模型(Project Object ...

    基于SpringBoot搭建应用开发框架 —— 基础架构.pdf

    基于 Spring Boot 搭建应用开发框架 —— 基础架构 本文主要讲解了基于 Spring Boot 搭建应用开发框架的基础架构,包括项目结构、Spring Boot 配置、MyBatis 集成、日志及全局异常处理、Redis 缓存、Swagger 支持 ...

    Maven配置好的原文件

    总结,本资源提供的Maven配置文件可以帮助快速搭建Java开发环境,特别是对于使用Spring Boot的开发者,配合STS可以更高效地进行项目管理和开发。正确配置并理解Maven的工作原理,将极大地提高开发效率。

    SpringBoot 源码解析——源码各模块代码统计.docx

    4. **spring-boot-docs**: 包含1131行代码,用于生成SpringBoot的文档和API参考,如使用Gradle或Maven插件自动生成的AsciiDoc文档。 5. **spring-boot-properties-migrator**: 代码行数为548,这个模块负责处理旧...

    适用于Eclipse 4.5.0的spring插件

    1. **Spring项目创建向导**:通过简单的向导,开发者可以快速创建基于Spring的Maven或Gradle项目,包括Spring Boot项目。 2. **Spring配置编辑器**:此编辑器提供代码补全、错误检查和超链接导航功能,使得XML配置...

    后台管理系统

    在这个系统中,我们看到它基于两大核心技术——Maven和Spring Boot,这两大技术在现代Java开发中占据着核心地位。 **Maven** 是一个项目管理和综合工具,它简化了构建、编译、依赖管理以及文档生成的过程。Maven...

    spring-boot-demo

    《Spring Boot实战——深入解析与应用》 Spring Boot是由Pivotal团队提供的全新框架,它为简化Spring应用程序的初始搭建以及开发过程而诞生。通过自动配置、起步依赖和Actuator等特性,Spring Boot使得创建独立运行...

    chapter01.zip

    《Spring Boot源代码解析——Chapter 01概览》 Spring Boot是Java开发中的一个热门框架,它简化了创建独立的、生产级别的基于Spring的应用程序的过程。本章将深入探讨"hello spring boot"项目的源代码,揭示其内在...

Global site tag (gtag.js) - Google Analytics