首页 文章

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

提问于
浏览
2

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

我把我的eclipse项目目录结构作为:

Project
|-- pom.xml
 -- src
     -- main
        |-- java
         -- resources
         -- webapp
            |-- WEB-INF
                -- web.xml

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

|-- META-INF
 -- WEB-INF
    -- classes
       -- 
       -- META-INF
       -- WEB-INF

我没想到classes文件夹中的META-INF和WEB-INF文件夹 . 它复制了类文件夹不需要的数据,这些文件夹已经存在于war文件的根目录下 .

请告诉我如何限制maven war builder将META-INF和WEB-INF排除在类文件夹中?

1 回答

  • 2

    我也有这个问题 . 它是通过将maven-war-plugin配置添加到我的pom并包含 <packagingExcludes> 元素来解决的:

    <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>
    

    在OP的情况下,这排除了将 ${basedir}/src/main/webapp 的内容(包括 META-INFWEB-INF )复制到 target/classes/main/webapp ,然后复制到 target/${finalName}/WEB-INF .

    实际上,maven然后按照需要行事,只将 ${basedir}/src/main/webapp 的内容放入 target/${finalName} 并随后进入 ${finalName}.war

相关问题