首页 文章

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

提问于
浏览
5

我尝试使用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是missig) .

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

3 回答

  • 2

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

  • 0

    您可以使用命令行中的以下命令使用Maven打包项目 .

    mvn clean package
    
  • 0

    看一下Maven layout definition:webapp文件夹应该在 scr/main/webapp 而不是 main/webapp . 或者,您也可以强制maven查看资源的不同目录 . 见https://maven.apache.org/pom.html#Build_Settings

相关问题