【发布时间】:2010-01-05 09:48:21
【问题描述】:
我想在 maven 安装阶段运行一个简单的 exec 命令。实现这一目标的最简单方法是什么? (不添加新插件)
【问题讨论】:
我想在 maven 安装阶段运行一个简单的 exec 命令。实现这一目标的最简单方法是什么? (不添加新插件)
【问题讨论】:
如果您想将此命令作为正常构建生命周期的一部分运行,除了在install 阶段绑定exec 目标之外别无他法:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<id>my-exec</id>
<phase>install</phase>
<goals>
<goal>exec</goal>
</goals>
<inherited>false</inherited>
</execution>
</executions>
<configuration>
<executable>COMMAND</executable>
</configuration>
</plugin>
</plugins>
</build>
我使用上面的配置(使用ls 作为“命令”)和一个新创建的 maven 项目进行了一个简单的测试,运行mvn install 会产生以下输出:
如我们所见,该命令在install 阶段的末尾执行(在工件复制到本地存储库之后)。
如果您真的不想将 sn-p 添加到您的 pom 中,那么您必须按照whaley 的建议在命令行上的install 之后显式调用exec:exec。
【讨论】:
maven 默认生命周期以 install 和 deploy 目标结束 - 这些目标没有前后版本。
可能的选择是:
将 exec:exec mojo 绑定到部署阶段。我会警告您不要使用这种想法,因为部署阶段实际上是要将工件部署到远程 maven 存储库。
在您的 mvn 调用中安装目标之后运行 exec:exec mojo...例如:
mvn clean install exec:exec -Dexec.executable="yourcommand" -Dexec.args="arguments"
如果您有一个多模块项目,请在
【讨论】: