Ошибка знатока при создании ВОЕННОГО пакета (пропавшие без вести web.xml..?)

При выполнении mvn install, Я получаю следующую ошибку:

Ошибка, собирающая ВОЙНУ: атрибут webxml требуется (или существующий ранее WEB-INF/web.xml при выполнении в режиме обновления)

Мое дерево структуры веб-приложения похоже на это:

my-app
|-- pom.xml
|-- src
    |-- ...
    |-- WebContent
        |-- ...
        |-- META-INF
        |-- WEB-INF
            |-- classes
                |-- ...
            |-- lib
            |-- **web.xml**

Мой файл АНГЛИЧАНИНА похож на это:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>masters.traffic</groupId>
  <artifactId>traffic_web</artifactId>
  <packaging>war</packaging>
  <name>traffic_web</name>
  <version>0.1.0</version>
  <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>                    
                </configuration>
            </plugin>
        </plugins>
  </build>

    ...
</project>

Как правильно устранить ту проблему?

С уважением

10
задан Pascal Thivent 20 August 2010 в 07:00
поделиться

3 ответа

Я настоятельно рекомендую использовать стандартный макет Maven :

  • поместите исходные коды Java в src / main / java (и удалите элемент sourceDirectory )
  • поместите исходные коды веб-приложений в src / main / webapp
  • удалите каталоги classes и lib в WEB-INF

Конечно, вы можете настроить макет, но это, ИМО, больше проблем и бесполезных усилий, чем преимуществ. Просто соблюдайте условности.

19
ответ дан 3 December 2019 в 14:33
поделиться

Я предполагаю, что maven-war-plugin ищет src / main / webapp / WEB-INF / web.xml , но может не нашел и хочет, чтобы вы явно указали (не стандартное для maven) местоположение. Если вы не можете переименовать WebContent в webapp и переместить его в src / main / (рекомендуется), вы можете попробовать добавить что-то подобное в свой <сборка>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <configuration>
    <webXml>${basedir}/src/WebContent/WEB-INF/web.xml</webXml>
    <warSourceDirectory>${basedir}/src/WebContent</warSourceDirectory>
  </configuration>
</plugin>
13
ответ дан 3 December 2019 в 14:33
поделиться

Взгляните на этот комментарий:

Maven: включение папки META-INF в папку классов

Я считаю, что Maven ожидает папку с именем «webapp», а не «WebContent» .

1
ответ дан 3 December 2019 в 14:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: