您可以通过使用 Maven 的 profiles 来实现既支持 WAR 打包方式,也支持可执行的 JAR 文件(fat JAR)方式。您可以在不同的 profile 中配置不同的 <packaging>
和 spring-boot-maven-plugin
的 <configuration>
。
以下是一个示例,演示如何通过 Maven profiles 实现这一目的:
<profiles>
<profile>
<id>war-packaging</id>
<activation>
<activeByDefault>true</activeByDefault> <!-- 设置默认激活该 profile -->
</activation>
<properties>
<packaging.type>war</packaging.type>
</properties>
</profile>
<profile>
<id>fat-jar-packaging</id>
<properties>
<packaging.type>jar</packaging.type>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
然后,您可以在 <packaging>
中使用 ${packaging.type}
来引用这些 profile 中定义的属性。例如:
<packaging>${packaging.type}</packaging>
通过这种方式,您可以根据需要选择不同的 profile 来构建 WAR 包或者可执行的 JAR 文件。