我正在尝试利用 maven-war-plugin 的有用覆盖功能。换句话说,我有一个template-0.0.1.war
包含标签文件、css、js 和图像的模板(打包为 WAR 文件)。
当我设置template-0.0.1.war
为 myApp 项目的依赖项时,我得到一个包含被 myApp 项目中具有相同路径myApp.war
的文件覆盖的所有文件的最终文件。template-0.0.1.war
这是我想要的行为。
但是,我需要在pom.xml
myApp 中引入 maven-war-plugin 的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<webResources>
<resource>
<directory>../path/to/another/dir</directory>
</resource>
</webResources>
</configuration>
</plugin>
一旦我引入了这样的插件配置,我就获得了包含myApp 项目和 myApp 项目myApp.war
中所有文件的最终文件,但覆盖了 myApp 项目中具有相同路径的文件。template-0.0.1.war
template-0.0.1.war
这种行为与我的预期完全相反。
有人能告诉我哪里错了吗?
提前致谢。
找到解决方案后编辑:
所描述的问题是由于不同操作的并发性:WAR 覆盖(正常工作)和外部webResources
.
实际上,外部webResources
标签指向模板项目目录:对 Maven 完全没用,但对于“愚弄”m2e eclipse 插件并让它看到模板中包含的自定义标签是必不可少的。
我采用的解决方案是在我的插件部分引入 2 个不同的配置文件pom.xml
:第一个称为“ eclipse ”,我在其中插入了maven-war-plugin
.webResources
和第二个配置文件(称为“标准”并默认激活)没有maven-war-plugin
.