gpt4 book ai didi

maven - 如何在一次调用中调用相同的 Maven 构建两次

转载 作者:行者123 更新时间:2023-12-03 14:00:52 25 4
gpt4 key购买 nike

是否可以使用不同的配置参数多次调用相同的 Maven 构建?

我有一个使用 rpm-maven-plugin 创建多个 RPM 的 maven 版本。我向它传递了一个变量(environment),它指定了 RPM 的目标环境:开发、登台或生产。

要为所有环境创建所有 RPM,我调用 mvn package -Denvironment=... 3次;我想简化一下。如果我可以调用 mvn package 那就太好了一次,然后它会为所有环境构建三个 RPM。

你看到有什么办法吗?

编辑 1

到目前为止(基于 dm3's great answer),我可以在一个构建中创建三个具有相同属性的独立 RPM。现在的问题是能够更改environment每次执行的属性。有什么建议么?

<project>
<properties>
<!-- Default Environment -->
<environment>development</environment>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.1-alpha-1</version>
<executions>
<execution>
<phase>package</phase>
<id>package-development</id>
<goals><goal>rpm</goal></goals>
</execution>

<execution>
<phase>package</phase>
<id>package-staging</id>
<goals><goal>rpm</goal></goals>
</execution>

<execution>
<phase>package</phase>
<id>package-production</id>
<goals><goal>rpm</goal></goals>
</execution>
</executions>
</plugin>
</plugins>

<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.1-alpha-1</version>
<extensions>true</extensions>

<configuration>
... VERY LONG CONFIG ...
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>

最佳答案

我相信在一个 Maven 执行期间实现这一点的唯一方法是将插件的多个执行(具有不同的配置)绑定(bind)到生命周期阶段,如下所示:

<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<id>test-1</id>
<configuration>
...
</configuration>
<goals><goal>test</goal></goals>
</execution>
<execution>
<phase>test</phase>
<id>test-2</id>
<configuration>
...
</configuration>
<goals><goal>test</goal></goals>
</execution>
</executions>
</plugin>
</plugins>
...
</build>

您可以将此配置附加到由一个属性触发的某些配置文件(例如由 mvn package -Denvironment=all )。

关于maven - 如何在一次调用中调用相同的 Maven 构建两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com