使用maven构建.war文件.缺少文件和目录

Mar*_*.v7 5 java spring war maven maven-war-plugin

我尝试使用maven插件构建.war文件:

  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
      <warSourceDirectory>WebContent</warSourceDirectory>
      <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

我的项目结构如下:

/main/webapp/WEB-INF/
/main/webapp/WEB-INF/spring/...
/main/webapp/WEB-INF/web.xml
/main/webapp/public/...
/main/webapp/resources/...
/main/webapp/views/...
Run Code Online (Sandbox Code Playgroud)

构建之后,我的war文件只包含WEB-INF和META-INF.缺少webapp目录的所有其他内容(公共,资源和视图).此外,.war文件中的WEB-INF目录只包含/ classes和/ lib目录(/ WEB-INF/spring和WEB-INF/web.xml是missig).

如何告诉maven将所有webapp和WEB-INF目录内容打包到war文件中?

Tun*_*aki 2

maven-war-plugin您的配置和项目结构之间不匹配。使用<warSourceDirectory>WebContent</warSourceDirectory>,您可以配置在目录maven-war-plugin中查找 web 应用程序源WebContent。但是,您的来源位于main/webapp.

我建议您将所有 webapp 源移至内部src/main/webapp(而不是main/webapp)并将maven-war-plugin配置更新为:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
         <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

默认情况下,maven-war-plugin将在 .txt 文件中查找您的 web 应用程序源src/main/webapp