Я пытаюсь построить проект Grails с Maven. Само по себе это не было бы так сложно. Но требуется, чтобы у pom.xml
в моем проекте была определенная корпоративная помпа, поскольку она является родительской.
В родительском 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]
или что-то в этом роде Это также может быть актуально.