Maven-antrun-plugin在打包战争之前修改工件

时间:2017-05-11 19:04:13

标签: maven ant

我有一个通过Maven构建的应用程序,最终结果是.war文件 - 它运行良好且良好。

它在构建期间从存储库中提取了许多依赖项,并在应用程序中使用它们。其中一个依赖项是一个jar文件,在jar文件中是一个zip文件,并且该zip文件是我要删除的一个文件。

使用maven-antrun-plugin我已经设法将该jar从TARGET移动到tmp位置并爆炸jar文件。然后我爆炸zip文件,删除有问题的文件,将所有内容重新打包并再次放入TARGET。

问题是在构建WAR文件之后会发生这种情况,因此不会使用我放回TARGET的新jar。我知道这是因为它已经打包了所以我尝试在此阶段之前使用类似于下面的方式更改JAR(发现通过:Run an ant task in maven build phase before war is packaged?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <id>deploy-ui</id>
            <phase>package</phase>
            <inherited>false</inherited>
            <configuration>
                <target>
           <-- JAR was modified in here -->
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <!-- First step is to disable the default-war build step. -->
            <id>default-war</id>
            <phase>none</phase>
        </execution>
        <execution>
            <!-- Second step is to create an exploded war. Done in prepare-package -->
            <id>war-exploded</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>exploded</goal>
            </goals>
        </execution>
        <execution>
            <!-- Last step is to make sure that the war is built in the package phase -->
            <id>custom-war</id>
            <phase>package</phase>
            <goals>
                <goal>war</goal>
            </goals>
        </execution>
    </executions>
</plugin>

它在战争爆炸后但在打包之前成功运行了ant插件,因此找不到我在TARGET目录中引用的任何文件?

有没有得到它,以便我可以在战争结束前引用TARGET中的文件?如果没有,可以提出一个替代方案。

注意:我无法将新依赖项上载到存储库和/或使用本地副本。

0 个答案:

没有答案