繁体   English   中英

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

[英]Building .war file using maven. Missing files and directories

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

  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
      <warSourceDirectory>WebContent</warSourceDirectory>
      <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
  </plugin>

我的项目结构如下:

/main/webapp/WEB-INF/
/main/webapp/WEB-INF/spring/...
/main/webapp/WEB-INF/web.xml
/main/webapp/public/...
/main/webapp/resources/...
/main/webapp/views/...

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

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

您的maven-war-plugin配置与项目结构不匹配。 使用<warSourceDirectory>WebContent</warSourceDirectory> ,您正在配置maven-war-plugin以在WebContent目录中查找您的 webapp 源。 但是,您的来源位于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>

默认情况下, maven-war-plugin将在src/main/webapp中查找您的 webapp 源。

您可以通过在命令行中使用以下命令来使用 Maven 打包您的项目。

mvn clean package

看一下Maven 布局定义: webapp 文件夹应该在src/main/webapp而不是main/webapp 或者,您也可以强制 maven 在不同的目录中查找您的资源。 请参阅https://maven.apache.org/pom.html#Build_Settings

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM