首页 > 解决方案 > 如何使用单个 maven 命令从代码库中 spring-boot:repacakge 到 Jar 和 War

问题描述

我想通过单个 maven 命令从同一个代码库生成 Jar 和 War spring-boot 包mvn install

我们目前正在从同一个代码库中生成单独的 Jar 和 War spring-boot 包,在 pom via 中具有不同的配置文件mvn install -PJar && mvn install -PWar,目前我可以通过打包 war 来生成 Jar 和 War 包。流程如下图。

Compile - > Package Jar -> Package War -> Repackage Jar to spring-boot Jar.

我无法完成下一步Repackage War to spring-boot War

        <!-- Jar is the default package -->                 
        <!-- Package War -->        
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <executions>
                <execution>
                    <id>package-war</id>
                    <phase>package</phase>
                    <goals>
                        <goal>war</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!-- Spring Boot -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                 <execution>
                    <id>build-info</id>
                    <goals>
                        <goal>build-info</goal>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

以上是创建Jar和War包,只有spring-boot Jar包,没有创建spring-boot War包。我曾尝试classifiers在执行配置中使用在 spring-boot 中将战争包装与战争重新包装绑定,但重新包装寻找${artifact-id}-${classifier}.jar而不是${artifact-id}-${classifier}.war并跳过战争的重新包装。

标签: javamavenspring-boot

解决方案


推荐阅读