我正在使用maven编写应用程序 . 最终结果是一个war文件 . 我以这样的方式配置它,我有一个名为“war”的项目,它获取所有需要的 jar 并产生最后的战争 . 我有一个名为“ui”的第二个项目,其中包含所有ui元素 . 此ui项目还包含要包含在webapp目录中的文件 . 这就是为什么ui模块也作为war文件打包的原因 . 在项目“war”的pom.xml中,我包含了以下依赖项:
<dependency>
<groupId>ui</groupId>
<artifactId>ui</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
当我从“战争”项目中打包所有内容时,“ui”的webapp不仅会复制到最后的战争中,还会复制到项目“war”的本地webapp文件夹中 . 有没有办法停用这个,以便ui的webapp的内容只在最终的jar中结束?否则,我的“战争”项目会受到来自其他模块的文件和文件夹的污染,并且永远不会被清除 . 所以在ui中添加然后删除的文件仍然会出现在“war”项目中 .
1 回答
你没有从pom.xml附加war配置,我假设你正在使用maven覆盖默认设置 .
您的问题来自于使用"war"作为项目名称,这与重叠默认值冲突 . 根据WAR插件documentation:
您需要将workDirectory显式设置为不同的值:
更好的解决方案是更改模块的名称,因为使用关键字来命名任何项目工件被认为是一种不好的做法,并且您可能会遇到更多问题 .