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所写)
相关推荐
此外,Maven还支持多种插件,如Spring Boot Maven插件,可以简化Spring Boot应用的构建和运行。 在实际开发中,Maven的 profiles 特性也十分有用。你可以为不同的环境(如开发、测试、生产)定义不同的配置,如...
- **使用Maven插件运行**:指导如何通过Maven插件启动Spring Boot应用。 - **使用Gradle插件运行**:通过Gradle插件启动Spring Boot应用的方法。 - **热交换**:介绍Spring Boot应用的热部署机制,使开发者能够在...
- **使用Spring Boot Maven插件**:指导如何使用Spring Boot的Maven插件进行构建。 - **Gradle**:讲解如何使用Gradle构建工具。 - **Ant**:虽然较少提及,但也支持使用Ant进行构建。 - **Starters**:介绍...
- **插件配置**:自动配置Maven插件,如spring-boot-maven-plugin,方便打包和运行Spring Boot应用。 5. **Spring Boot应用程序的目录结构** - **项目目录**:建议为项目创建单独的目录。 - **源代码目录**:...
由于Spring Boot项目中我们通常使用Maven管理依赖,因此我们需要在`pom.xml`文件中添加对应的依赖项。 #### 服务提供者(Provider) 对于服务提供者,我们需要引入以下依赖: 1. **dubbo-starter**:这是Spring ...
java程序设计——Java坦克大战游戏源码,基于Spring Boot,JDK8,Swing组件开发 ## 介绍 ###### Java坦克大战游戏,基于Spring Boot,JDK8,Swing组件开发 ## 安装执行 ###### 1、下载源码,在根目录执行maven...
【标题】"springboot_jsp_maven(war+jar)"是一个综合了Spring Boot、JSP和Maven技术的示例项目,旨在展示如何在Spring Boot框架下开发并部署包含Web界面的应用程序。该项目的独特之处在于它同时支持两种常见的部署...
接着,我们将深入研究Spring Boot的配置文件——`application.properties`或`application.yml`。这些文件允许开发者覆盖默认配置,定制化应用的行为。例如,你可以通过配置文件来指定数据库连接信息、服务器端口、...
本项目——"java-examples-spring-boot-base-java-15-maven",旨在展示如何使用Java 15和Maven来搭建一个基础的Spring Boot应用。 首先,我们来看项目的核心——Spring Boot。Spring Boot是Spring框架的一部分,它...
本文将深入探讨如何使用Maven和Spring Boot构建一个多模块的应用实例——"multiboot"。 一、理解Spring Boot与Maven 1. Spring Boot:Spring Boot简化了Spring应用的初始搭建以及开发过程,它默认配置了很多常见的...
- **使用Spring Boot Maven插件**:介绍Spring Boot Maven插件的功能及使用方法。 - **Gradle配置**:提供了Gradle相关的配置示例,帮助开发者更高效地管理Gradle项目。 - **Ant配置**:虽然较少使用,但仍然提供...
Apache Maven 3.3.9 是一个非常重要的版本,在Java开发领域中被广泛使用,尤其对于Spring Boot项目构建而言更是不可或缺。Maven是一个强大的项目管理工具,它通过使用一种标准化的项目对象模型(Project Object ...
基于 Spring Boot 搭建应用开发框架 —— 基础架构 本文主要讲解了基于 Spring Boot 搭建应用开发框架的基础架构,包括项目结构、Spring Boot 配置、MyBatis 集成、日志及全局异常处理、Redis 缓存、Swagger 支持 ...
总结,本资源提供的Maven配置文件可以帮助快速搭建Java开发环境,特别是对于使用Spring Boot的开发者,配合STS可以更高效地进行项目管理和开发。正确配置并理解Maven的工作原理,将极大地提高开发效率。
redis实现全局锁 Redisson的Spring Boot核心 RedissonLockRedisson实现分布式锁有关Redisson实现环球锁前面写了三篇博客该项目作为项目落地的铺垫。1、Redisson实现全局锁(1)---原理2、Redisson实现全球锁(2)——...
4. **spring-boot-docs**: 包含1131行代码,用于生成SpringBoot的文档和API参考,如使用Gradle或Maven插件自动生成的AsciiDoc文档。 5. **spring-boot-properties-migrator**: 代码行数为548,这个模块负责处理旧...
1. **Spring项目创建向导**:通过简单的向导,开发者可以快速创建基于Spring的Maven或Gradle项目,包括Spring Boot项目。 2. **Spring配置编辑器**:此编辑器提供代码补全、错误检查和超链接导航功能,使得XML配置...
在这个系统中,我们看到它基于两大核心技术——Maven和Spring Boot,这两大技术在现代Java开发中占据着核心地位。 **Maven** 是一个项目管理和综合工具,它简化了构建、编译、依赖管理以及文档生成的过程。Maven...
《Spring Boot实战——深入解析与应用》 Spring Boot是由Pivotal团队提供的全新框架,它为简化Spring应用程序的初始搭建以及开发过程而诞生。通过自动配置、起步依赖和Actuator等特性,Spring Boot使得创建独立运行...