默认情况下,repackage 目标将用重新打包的包替换原始包。如果需要保留原始包,并有可执行 jar 包,请按如下所示配置插件。
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-maven-pluginartifactId>
- <version>${spring-boot-dependencies.version}version>
- <configuration>
-
- <classifier>execclassifier>
- configuration>
- <executions>
- <execution>
- <goals>
- <goal>repackagegoal>
- goals>
- execution>
- executions>
- plugin>
- plugins>
- build>
或者使用下面配置
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-maven-pluginartifactId>
- <version>${spring-boot-dependencies.version}version>
- <executions>
- <execution>
- <id>repackageid>
- <goals>
- <goal>repackagegoal>
- goals>
- <configuration>
-
- <classifier>execclassifier>
- configuration>
- execution>
- executions>
- plugin>
- plugins>
- build>
上面配置示例会在 target 目录中创建 2 个 jar 文件,一个是原始 jar,另一个是后缀带 exec 表示为可执行的 jar。

如果使用的是 spring-boot-starter-parent,则 repackage 目标将在 ID 为 repackage 的执行中自动执行。 在该设置中,只需指定配置,如下示例:
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-maven-pluginartifactId>
- <executions>
- <execution>
- <id>repackageid>
- <configuration>
-
- <classifier>execclassifier>
- configuration>
- execution>
- executions>
- plugin>
- plugins>
- build>