执行目标 org.apache.maven.plugins 失败:指定的 web.xml 文件 'D:\WEB-INF\web.xml' 不存在。

3
[ERROR] 无法在项目CRPS上执行默认的war打包(maven-war-plugin:2.1.1):指定的web.xml文件'D:\WEB-INF\web.xml'不存在 -> [帮助 1] [ERROR] [ERROR] 要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。 [ERROR] 使用-X开关重新运行Maven以启用完整的调试日志记录。 [ERROR] [ERROR] 有关错误和可能解决方案的更多信息,请阅读以下文章:[ERROR] [帮助 1]

http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

注意: 我的项目位于D:\MAVEN\
项目文件夹为:D:\MAVEN\CRPS

当我在IntelliJ IDEA中单击安装时,会出现此错误。 为什么会发生这种情况?


它能从命令行工作吗?你能附上一个示例项目以便重现吗? - CrazyCoder
1个回答

8

正如您所看到的,插件正在查找D:\ WEB-INF路径以获取进行WAR打包所需的web.xml,这显然是错误的地方。您需要明确指定,可以通过在终端上运行传递-Dmaven.war.webxml = ..../WEB-INF/web.xml参数,或者将配置添加到pom中来实现。

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <executions>
      <execution>
         <phase>package</phase>
         <configuration>
           <webXml>..../WEB-INF/web.xml</webXml>
         </configuration>
      </execution>
    </executions>
  </plugin>

请注意:您不需要声明绝对路径,相对于项目pom的路径应该足够。请用正确的路径替换点
我猜测您没有使用默认的Maven war项目布局,这就是为什么会出现此错误的原因。如果您使用了默认布局,插件将按如下示例默认从src/main/webapp/WEB-INF/web.xml获取web.xml文件。
  • pom.xml
  • src
    • main
      • java
      • resources
      • webapp
        • WEB-INF
          • web.xml

web.xml与您上面提到的完全相同。这是我的pom.xml中的插件: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <webXml>/WEB-INF/web.xml</webXml> </configuration> </plugin> </plugins> </build> 我不明白错误在哪里。 - Maheraj
2
如果您的项目布局与我上面指定的相同,但仍然指向错误的位置,则应该使用以下配置替换您的配置: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <webXml>src/main/webapp/WEB-INF/web.xml</webXml> </configuration> </plugin> 或者完全删除您的<configuration>标签,让插件自己去默认位置找到。 - Tekdev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接