Maven war 插件将 src/main/webapp 复制到类

Bha*_*han 5 eclipse war maven

亲爱的 stackoverflow 会员,我面临着 Maven war 插件的一个奇怪问题。

我已将 Eclipse 项目目录结构配置为:

项目
|-- pom.xml
 -- 源代码
     -  主要的
        |-- java
         -  资源
         -- 网络应用程序
            |-- WEB-INF
                -- 网络.xml  

当我运行 maven build 命令时,webapp 目录中存在的所有文件都被复制到对我来说很奇怪的classes 文件夹中。生成 war 文件中的结果目录结构为:

|-- 元信息文件
 -- WEB-INF
    -- 课程
       --
       -- 元信息文件
       -- WEB-INF

我没想到类文件夹中会有 META-INF 和 WEB-INF 文件夹。它复制了类文件夹不需要的数据,并且这些文件夹已经位于 war 文件的根目录中。

请让我知道如何限制 Maven War 构建器以排除 META-INF 和 WEB-INF 进入类文件夹?

小智 3

我也有这个问题。通过将 maven-war-plugin 配置添加到我的 pom 并包含一个<packagingExcludes>元素来覆盖 maven-war-plugin 配置,解决了这个问题:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1.1</version>
        <configuration>
           <packagingExcludes>**/webapp</packagingExcludes>
           ...
        </configuration>
    </plugin>
</plugin>
Run Code Online (Sandbox Code Playgroud)

正如OP的情况一样,这阻止了将 的内容复制到${basedir}/src/main/webapp,包括META-INFWEB-INFtarget/classes/main/webapp以及随后复制到target/${finalName}/WEB-INF

实际上,maven 然后按照期望的方式运行,将${basedir}/src/main/webapp only的内容放入target/${finalName}并随后放入${finalName}.war