wake-up-neo.net

Maven-Fehler beim Zusammenstellen von WAR: Das webxml-Attribut ist erforderlich, wenn Sie das SpringMVC-Projekt mit reiner Java-basierter Konfiguration und ohne XML erstellen

Ich entwickle ein Spring MVC-Projekt mit einer reinen Java-basierten Konfiguration. Ich erhalte die Fehlermeldung unten, wenn ich eine saubere Maven-Installation durchführe.

Ziel konnte nicht ausgeführt werden org.Apache.maven.plugins: maven-war-plugin: 2.2: war (default-war) auf Projekt SpringMVC-ShoppingCart: Fehler beim Erstellen des WAR: webxml-Attributs ist erforderlich (oder bereits vorhandenes WEB-INF/web.xml, wenn im Update-Modus ausgeführt.). -> [Hilfe 1]

Der Fehler besagt, dass web.xml fehlt, aber ich hatte keinen, da ich reine Java-basierte Konfiguration verwendet habe.

Wie stellen Sie sicher, dass das Projekt eine War-Datei ohne web.xml erstellt und erstellt?

14

Dieser Fehler tritt auf, weil die maven-war-plugin in Version 2.6 oder niedriger standardmäßig erwartet, dass eine src/main/webapp/web.xml-Datei in Ihrem WAR-Projekt vorhanden ist und nicht gefunden wurde.

Verwenden Sie Anmerkungen und führen Sie ein Upgrade auf 3.0.0 oder neuer durch

Seit Version 3.0.0 des Plugins ist das Vorhandensein eines web.xmlstandardmäßig nicht mehr obligatorisch :

Der Standardwert für failOnMissingWebXml wurde von true in false geändert.

Dies bedeutet, dass ein Upgrade des Plugins das Problem direkt löst. Sie können die folgende Konfiguration in Ihrem POM hinzufügen:

<plugin>
  <artifactId>maven-war-plugin</artifactId>
  <version>3.0.0</version>
</plugin>

Der Grund ist, dass die web.xml-Datei seit Servlet 3.0 in einer Webanwendung nicht mehr benötigt wird und durch Anmerkungen ersetzt werden kann , um eine Java-basierte Konfiguration ( MWAR-262 ) zu erhalten. Da Ihr Projekt jedoch möglicherweise keine Anmerkungen verwendet, um diese Datei zu ersetzen. In diesem Fall könnte web.xml tatsächlich fehlen, wurde in Version 3.0.1 des Plug-Ins eine Sicherheitsüberprüfung hinzugefügt, um sicherzustellen, dass sich die Anmerkung @WebServlet in befindet Der Kompilierungsklassenpfad Ihres WAR-Projekts ( MWAR-396 ). Wenn dies nicht der Fall ist und es keine web.xml-Datei in Ihrem Projekt gibt, schlägt das Plugin weiterhin standardmäßig fehl.

Ignoriere den fehlenden web.xml

Wenn Sie möchten, dass das Plugin eine fehlende web.xml-Datei unabhängig von der Verwendung von Anmerkungen explizit ignoriert, können Sie den Parameter failOnMissingWebXml auf false setzen. Eine Beispielkonfiguration wäre:

<plugin>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <failOnMissingWebXml>false</failOnMissingWebXml>
  </configuration>
</plugin>
36
Tunaki

Das liegt daran, dass Sie web.xml nicht in Ihr Webprojekt aufgenommen haben und versuchen, Krieg mit Maven aufzubauen. Um diesen Fehler zu beheben, müssen Sie den Parameter failOnMissingWebXml in der Datei pom.xml auf false setzen.

Zum Beispiel:

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>   
</properties>

Weitere Informationen finden Sie im Blog: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html

2
Ankur jain