我正在尝试用maven构建一个grails项目。就其本身而言,这不会那么难。但是,我的项目中的pom.xml
必须具有某个企业pom,因为它是它的父级。
父pom中有许多内容在我们的部署过程中很重要,但它也包含以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>webapp</warSourceDirectory>
<webXml>webapp/WEB-INF/web.xml</webXml>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
如果我理解正确,这会告诉maven在web.xml
中查找webapp/WEB-INF
文件。此时,我的项目没有web.xml
文件,尽管可能稍后。如何覆盖web.xml
文件位置的此规范,以便maven:
web.xml
文件。web.xml
文件。实际上,在编译和运行测试之后,Maven报告:
Tests PASSED - view reports in target\test-reports
[INFO] [war:war {execution: default-war}]
[INFO] Packaging webapp
[INFO] Assembling webapp[myapp] in [C:\code\workspace\myapp\myapp\target\myapp-current]
[INFO] Processing war project
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] The specified web.xml file 'C:\code\workspace\myapp\myapp\webapp\WEB-INF\web.xml' does not exist
[INFO] ------------------------------------------------------------------------
我认为有趣的是,正在执行的命令是[war:war {execution: default-war}]
而不是[grails:war]
或其他东西。这也许是相关的。
答案 0 :(得分:1)
我的解决方案:
替换
<packaging>war</packaging>
带
<packaging>grails-app</packaging>