Maven 2 Maven构建过程中准备包和包之间的执行点

Maven 2 Maven构建过程中准备包和包之间的执行点,maven-2,maven-3,Maven 2,Maven 3,打包war项目的package阶段在target文件夹中准备一个分解的war,并将其打包到最终的war-文件中 在prepare package和package阶段之间,是否可以进行一些更改、编辑文件、删除文件等?我正在搜索一个扩展点(Maven执行阶段),其中的资源已经被复制并处于分解的war结构中 [maven阶段]复制资源并分解到target/{finalName} [自定义]执行一些复杂的自定义更改(例如,使用maven antrun实现) [maven phase]将更改的内容打包到最

打包
war
项目的
package
阶段在
target
文件夹中准备一个分解的war,并将其打包到最终的
war
-文件中

prepare package
package
阶段之间,是否可以进行一些更改、编辑文件、删除文件等?我正在搜索一个扩展点(Maven
执行阶段
),其中的资源已经被复制并处于分解的war结构中

  • [maven阶段]复制资源并分解到
    target/{finalName}
  • [自定义]执行一些复杂的自定义更改(例如,使用
    maven antrun
    实现)
  • [maven phase]将更改的内容打包到最终的
    war
  • 我认为在
    prepare package
    package
    两个阶段之间,这是可能的。不幸的是,在
    prepare-package
    之后,没有可以在以后更改和打包的爆炸战争


    你能给我一个提示如何做到这一点吗?非常感谢。

    我觉得您应该将antrun任务绑定到prepare package阶段,因为此时资源已经处理完毕,请参见

    此配置调用
    准备包
    阶段中的
    分解目标。这使您有机会在后续插件定义中处理分解的war目录,例如
    maven antrun

    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-war-plugin</artifactId>
       <version>2.1.1</version>
       <executions>
         <execution>
           <id>prepare-war</id>
           <phase>prepare-package</phase>
           <goals>
             <goal>exploded</goal>
           </goals>
         </execution>
       </executions>
    </plugin>
    
    
    org.apache.maven.plugins
    maven战争插件
    2.1.1
    备战
    准备包装
    爆炸了的
    
    Maven war插件可以排除文件并对其进行过滤。也许你的需求更复杂?需求更复杂,是的。我不能使用这个功能,它还不够强大。你需要解释一下你的[自定义]更改是什么。根据它们是什么,我们可能会找到不同的解决方案。@SaM:我必须将一个包含额外资源的zip文件提取到这个分解的war文件中,运行预编译阶段(模型驱动),删除一些未使用的工件,最后将整件事打包到war.hmm中。如果不按你想的那样做,我觉得这一切都是可行的。如果必须这样做,那么您可能没有按照maven的方式来做,应该重新考虑一下您的构建……您可能会降低构建的可维护性。如果有更多关于你所做工作的细节,我们可能会有所帮助。您需要复制哪些类型的资源?您需要预编译什么?此代码依赖于什么?为什么需要删除未使用的数据?听起来它可以在一个单独的模块中完成…对不起,我没有深入研究,我最终实现了我自己的war packager MOJO(编写了我自己的maven插件)并为此重写了生命周期。你是如何让maven antrun在准备war任务后执行的?我正在使用exec插件,它以前一直在执行。这在一开始是有效的,但我在分解的war目录中所做的更改被覆盖,因为maven war插件会再次运行。它在打包war文件之前使用原始文件重新创建分解的war目录。不管怎么说,如果要配置它,maven war plugin在第二次运行时只会将分解的war打包到war文件中?@Nathan我发现了我的问题:请注意,maven war plugin 2.1.0+会复制两次资源,这会覆盖替换。有关更多信息,请参阅。