1

我认为,如果我的项目名为 my-web-application,那么当我调用mvn clean installmaven 时首先编译到target\my-web-application-1.0文件夹,然后将该文件夹“压缩”到 my-web-application-1.0.war ...

但正如我最近发现的那样(也许只是使用默认设置)它不是这样工作的。

我正在使用一些第 3 方组件,我想为这些组件修改一些样式(.css)和行为(.js),所以我只需使用我的修改替换依赖项 jar 中的内容

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
<plugin>

执行示例如下(它将 org 文件夹压缩到 componentToModify.jar)

<execution>
    <id>fix</id>
    <phase>package</phase>
    <configuration>
        <executable>jar</executable>
        <workingDirectory>${basedir}</workingDirectory>
        <arguments>
            <argument>-uvf</argument>
            <argument>target/${project.artifactId}-${project.version}/WEB-INF/lib/componentToModify.jar</argument>
            <argument>org</argument>
        </arguments>
    </configuration>
    <goals>
        <goal>exec</goal>
    </goals>
</execution>

什么正确地修改了 componentToModify.jar 中的target\my-web-application-1.0,但最终的战争不包含修改。似乎库已从本地存储库压缩到战争。

这种行为有什么原因吗?我可以以某种方式改变它吗?

4

1 回答 1

0

不完全确定,但会在这里使用叠加帮助吗?

http://maven.apache.org/plugins/maven-war-plugin/overlays.html

如果一切都失败了,您可能只想修改 3rd 方应用程序并使用您的更改生成您自己的 jar。

于 2013-05-14T17:24:09.100 回答