Skip to content

Latest commit

 

History

History
117 lines (96 loc) · 4.54 KB

File metadata and controls

117 lines (96 loc) · 4.54 KB

68. Spring Boot Maven插件

Spring Boot Maven插件为Spring Boot在Maven中提供支持,让你打包为可执行jar或者war archive 并运行一个应用‘in place’。为了使用这个插件,你必须使用Maven 3.2(或者更后面的)。

note:查阅Spring Boot Maven插件页面了解完整的插件文档

68.1 包含这个插件

要使用Spring Boot Maven插件,包含合适的(appropriate)XML在你的pom.xmlplugins部分,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot
				<artifactId>spring-boot-maven-plugin
				<version>2.0.2.RELEASE
				<executions>
					<execution>
						<goals>
							<goal>repackage
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

该配置会在Maven生命周期的package阶段(phase)重新打包一个jar或war,下面的例子展示了target目录下重新打包的jar和原始的jar:

$ mvn package
$ ls target/\*.jar
target/myproject-1.0.0.jar target/myproject-1.0.0.jar.original

如果你没有包含配置,像之前例子展示的那样,you can run the plugin on its own (but only if the package goal is used as well),如下所示:

$ mvn package spring-boot:repackage
$ ls target/\*.jar
target/myproject-1.0.0.jar target/myproject-1.0.0.jar.original

如果你使用milestone或者snapshot版本,你也需要加上合适的pluginRepository元素,如下:

<pluginRepositories>
	<pluginRepository>
		<id>spring-snapshots
		<url>https://repo.spring.io/snapshot
	</pluginRepository>
	<pluginRepository>
		<id>spring-milestones
		<url>https://repo.spring.io/milestone
	</pluginRepository>
</pluginRepositories>

68.2 打包可执行Jar和War文件

一旦spring-boot-maven-plugin包含进你的pom.xml,它自动尝试重写存档(archive)以让它们变得可执行,通过使用spring-boot:repackage目标(goal)。你应该使用通常的packing元素配置你的工程来构建一个jar或者war,如下例子所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	
	<packaging>jar
	
</project>

你的存在的档案在package阶段被Spring Boot增强。你想启动的主类通常可以使用一个配置选项或者添加一个Main-Class特性(attribute)到manifest来指定。如果你没有指定一个主类,插件会寻找一个public static void main(String[] args)方法。

为了构建和运行一个工程artifact,你可以采用下面这样:

$ mvn package
$ java -jar target/mymodule-0.0.1-SNAPSHOT.jar

为了创建一个在外部容器既可执行又可部署的war文件,你需要标记内嵌容器依赖作为‘provided’,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	
	<packaging>war
	
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot
			<artifactId>spring-boot-starter-web
		</dependency>
		<dependency>
			<groupId>org.springframework.boot
			<artifactId>spring-boot-starter-tomcat
			<scope>provided
		</dependency>
		
	</dependencies>
</project>

note:查阅87.1 创建一个可部署War文件了解更多怎么创建一个可部署war文件的细节。

更高级的配置选项和例子在插件信息页面可找到。