使用Maven war插件,我生成包含以下目录的WAR:
META-INF
-- maven
   -- com.abc.def
      -- myServlet
         -- pom.xml
         -- pom.properties
在发布中,我想要排除这个maven目录.我怎样才能做到这一点?
我尝试了最新的maven-war-plugin(2.1-beta-1),它配置了"packagingExcludes",但它没有按照我的意愿工作.
有什么建议?
Pas*_*ent 40
我不确定,但我认为可以配置Maven Archiver(主要用于处理包装的插件)来实现这一目标.
关于<addMavenDescriptor>元素,Maven Archiver Reference说:
生成的存档是否包含这两个Maven文件:
- pom文件,位于存档中
META-INF/maven/${groupId}/${artifactId}/pom.xml- 一个
pom.properties文件,位于存档META-INF/maven/${groupId}/${artifactId}/pom.properties默认值是true.
所以像这样配置的pom应该可以解决这个问题:
<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.0</version>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>
Ric*_*ler 14
使用标准Maven包装,您不能在我所知的情况下省略该文件.但是,可以使用maven-assembly-plugin来构造war,在这种情况下,您可以对工件的内容进行更精细的控制,并且可以省略pom.xml.
但是,我个人发现保留pom.xml用于诊断目的很有用.在试图弄清楚你的应用程序出了什么问题时,了解用于构建和组装战争的内容非常方便.
更新:与Pascal的答案有一个奇怪的同步性,我刚刚阅读了Archiver参考资料,看来这可以通过将addMavenDescriptor属性设置为false 来完成.就个人而言,由于上述原因,我仍然会避免这样做.但是你可能想要改变你对Pascal答案的接受程度.
| 归档时间: | 
 | 
| 查看次数: | 15505 次 | 
| 最近记录: |