gpt4 book ai didi

java - 构建和配置文件标签中的 Maven antrun 插件

转载 作者:行者123 更新时间:2023-12-01 13:59:50 32 4
gpt4 key购买 nike

我们在将 Ear 部署到服务器时遇到问题。不同环境(dev、int、acc等)的部署是有区别的。对于每个环境,我们部署到 1 个 weblogic 服务器。在某些情况下,还需要在第二台服务器上进行部署。

因此,出于这个原因,我们尝试在构建标签中使用 antrun 插件,如下所示(因为它需要在每个环境的部署时运行:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<configuration>
<tasks>
... Here is our deployment task ...
</tasks>
</configuration>
<executions>
<execution><id>deploy_default</id>
<phase>deploy</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

然后,对于特定于环境的事情,我们使用配置文件(更改文件中的值、部署到第二个服务器等)。所以在这里我们再次做一些像这样的 Ant 事情:

<profile>
<id>intg</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<configuration>
<tasks>
... Change value in files ...
</tasks>
</configuration>
<executions>
<execution>
<id>0_resource</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>

我们看到的问题是,如果您执行 mvn clean install -Pintg,它也会在构建中执行 antrun 插件。它不应该这样做,因为它是针对部署阶段的。

一些研究告诉我们,构建标签中不能有两个单独的 antrun 插件!构建中的一个和配置文件标签中的一个是否相同?我知道我们可以使用 Maven Replacer 插件,这样在这种情况下它们就不会是配置文件标签中的 antrun 插件,但如果配置文件标签中的 ant 需要发生其他事情,这不是一个解决方案。

额外备注?也许可以在默认配置文件中定义 antrun 插件,但是有没有一种方法可以说该配置文件始终需要执行,即使有其他配置文件请求?就像如果你执行 -Pintg -> 那么它会执行 -Pdefault, intg (因为否则如果你需要在任何地方输入默认值,那将会是一团糟)

备注 2:我知道您可以将配置文件的 activeByDefault 设置为 true,但我认为如果您没有指定 -P,则这只在默认配置文件中执行?

最佳答案

配置是在插件级别,而不是执行级别。因此,通过将配置放在执行标签内,它将仅针对特定阶段和目标执行!

所以应该是这样的:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<configuration>
<tasks>
... Here is our deployment task ...
</tasks>
</configuration>
<id>deploy_default</id>
<phase>deploy</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>

关于java - 构建和配置文件标签中的 Maven antrun 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19405713/

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