我认为,如果我的项目名为my-web-application,那么当我调用mvn clean install
时,maven首先编译到target\my-web-application-1.0
文件夹,而不是将该文件夹“拉链”到my-web-application -1.0.war ...
但是,正如我最近发现的那样,它(可能只是默认设置)不起作用。
我正在使用一些第三方组件,我想修改这些组件的一些样式(.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>
正确修改target\my-web-application-1.0
中的componentToModify.jar,但最终战争不包含修改。似乎libs从本地存储库中被压缩为战争。
这种行为是否有某种原因,我可以以某种方式改变它吗?
答案 0 :(得分:0)
不完全肯定,但会在这里使用叠加帮助吗?
http://maven.apache.org/plugins/maven-war-plugin/overlays.html
如果所有其他方法都失败了,您可能只想修改第三方应用程序并根据您的更改生成自己的jar。