Maven,在战争即将建立之前运行一个java方法或脚本
Posted
技术标签:
【中文标题】Maven,在战争即将建立之前运行一个java方法或脚本【英文标题】:Maven, run a java method or script before war is about to be built 【发布时间】:2014-08-17 19:14:48 【问题描述】:我正在考虑使用模板引擎来生成 web.xml 和其他东西。
有没有办法在 maven install 命令之前运行 java 文件或脚本?或者在战争产生之前。
我不确定该阶段应该是什么,但基本上在其他人之前查看 web.xml,以便我可以触摸它以 制作一个新的有效。
【问题讨论】:
【参考方案1】:您可以使用exec-maven-plugin 运行程序/脚本(使用exec goal)或Java 程序(使用java goal)。
package
之前的阶段是prepare-package
(请参阅Lifecycle Reference 中的默认生命周期),因此您可以使用它。但您可能更愿意在生命周期的早期生成 web.xml(甚至早于 generate-resources
)。
把这些放在一起,你可能会尝试这样的事情:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>your_packaging_script</executable>
<!-- optional -->
<workingDirectory>/tmp</workingDirectory>
<arguments>
<argument>--some-option</argument>
</arguments>
</configuration>
</plugin>
或者,您可以考虑writing your own plugin,尤其是当您认为该想法对多个项目有用时。
【讨论】:
有没有办法在配置文件激活时运行插件而不在项目 pom.xml 中提及它?以上是关于Maven,在战争即将建立之前运行一个java方法或脚本的主要内容,如果未能解决你的问题,请参考以下文章
如何使用由 Maven 坐标定义的战争来运行 jetty:run-war?
Intellij Idea 建立maven项目 报错 :java: 错误: 不支持发行版本 5
如何使用 maven 中的 tomcat 插件部署多个战争?
java.net.socketexception 连接重置由对等套接字写入错误通过 Jenkins 在 Tomcat7 上部署战争时(使用 Maven)