我想在执行Maven构建时替换现有jar / zip文件中的文件。实现这一目标的最简单方法是什么?
答案 0 :(得分:9)
我最喜欢这类任务的是maven-antrun-plugin,它为你带来了完整的蚂蚁功能。
你可以像这样使用它:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>repack</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- note that here we reference previously declared dependency -->
<unzip src="${org.apache:common-util:jar}" dest="${project.build.directory}/tmp"/>
<!-- now do what you need to any of unpacked files under target/tmp/ -->
<zip basedir="${project.build.directory}/tmp" destfile="${project.build.directory}/common-util-modified.jar"/>
<!-- now the modified jar is available -->
</target>
</configuration>
</execution>
</executions>
</plugin>
但请记住 - 从不修改本地存储库中的任何文件 - 在${org.apache:common-util:jar}
指向的示例中。这样做会影响您在同一台计算机上的所有项目的进一步构建(=针对相同的本地仓库)。
此类构建在其他计算机上也是不可复制的(或难以复制)。
答案 1 :(得分:3)
我认为没有专门的插件可以执行此操作,但我认为您可以使用exec plugin和来自Updating .class file in jar的信息来完成此操作。