Erwägen:
Wenn ich ein einfaches Maven project in Eclipse erstelle, erhalte ich diesen Fehler
web.xml fehlt und
<failOnMissingWebXml>
ist auf .__ eingestellt. wahr
Wie kann ich dieses Problem beheben?
Dies ist ein schwerwiegender Fehler. Es gibt an, dass in Ihrem Projekt eine web.xml-Datei erwartet wird, da es sich um eine Webanwendung handelt, wie durch <packaging>war</packaging>
angegeben. Für aktuelle Webanwendungen ist eine web.xml-Datei jedoch vollständig optional. Maven muss diese Konvention einholen. Fügen Sie dies Ihrem Maven pom.xml
hinzu, damit Maven aufholen kann, und Sie müssen Ihrem Projekt keinen unbrauchbaren web.xml
hinzufügen:
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
Dies ist eine bessere Lösung als das Hinzufügen eines leeren web.xml
, da auf diese Weise Ihr Endprodukt sauber bleibt und Sie lediglich Ihre Build-Parameter ändern.
Für aktuellere Versionen von Maven können Sie auch die kürzere Version verwenden:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Wenn Sie web.xml bereits unter/src/main/webapp/WEB-INF installiert haben und trotzdem die Fehlermeldung "web.xml fehlt und auf true" gesetzt ist, können Sie prüfen, ob Sie/src/main/hinzugefügt haben. webapp in Ihrer Projektquelle.
Hier sind die Schritte, die Sie befolgen können:
(Ich habe das mit Eclipse Mars bestätigt)
Ich habe das gleiche Problem. Nach dem Studium und Googeln habe ich mein Problem gelöst:
Klicken Sie mit der rechten Maustaste auf den Projektordner, gehen Sie zu Java EE Tools
und wählen Sie Generate Deployment Descriptor Stub
aus. Dadurch wird web.xml
im Ordner src/main/webapp/WEB-INF
erstellt.
Sie können dies auch tun, was weniger ausführlich ist
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Wenn Sie Spring Tool Suite verwenden, wird die Option Generate Deployment Descriptor Stub unter Java EE Tools verschoben.
Dadurch wird die Datei web.xml im Ordner src/main/webapp/WEB-INF/erstellt und der Fehler aus der Pom.xml-Datei von Maven entfernt.
Eclipse erkennt falsches webapp
-Verzeichnis ..__, deshalb sollten wir es eindeutig mit maven-war-plugin
setzen.
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<webappDirectory>src/main/webapp</webappDirectory>
</configuration>
</plugin>
</plugins>
</build>
Nach dem Speichern dieser Einstellung tritt der Fehler nie auf, wenn er entfernt wird . (Ich kann nicht erklären, warum.)
Ich hatte das gleiche Problem, obwohl ich 'src/main/webapp/WEB-INF/'
Ordner mit korrektem web.xml
hatte.
Das Problem verschwand, nachdem ich die Konfiguration (. Maven-> Eclipse) mit Maven build..
neu erstellt hatte. mvn Eclipse:clean Eclipse:eclipse
Und dann habe ich Maven -> Update Project
verwendet, um (Eclipse-> Maven) Plugin-spezifische Optionen hinzuzufügen.
Dieses Problem ist nur in Eclipse aufgetreten. In der Maven-Befehlszeile funktionierte alles einwandfrei, und meine Datei web.xml war vorhanden. Es war ein ausgereiftes Projekt (das bereits in der Produktion eingesetzt wurde), das betroffen war. Mein Problem war an die Eclipse-Metadaten gebunden. Es gab ein Problem mit einer der Dateien in meinem Ordner .settings /, insbesondere die Komponente org.Eclipse.wst.common.component wurde geändert. Ich konnte diese Datei auf ihre vorherige Version zurücksetzen, wodurch das Problem in meinem Fall behoben wurde.
Beachten Sie, dass die Antwort von Yuci für mich nicht funktionierte. Als ich versuchte, in den Eclipse-Eigenschaften auf Deployment Assembly zu klicken, wurde die Fehlermeldung angezeigt, dass die aktuell angezeigte Seite ungültige Werte enthält.
Für Project mit web.xml present Project -> Eigenschaften -> Bereitstellungsassembly, in dem Sie den Ordner src/main/webapp . Speichern Sie die Änderungen ..__ gehen.
Für Project mit web.xml nicht vorhanden Setzen Sie failOnMissingWebXml in pom.xml unter properties tag auf false.
Mach das:
Klicken Sie mit der rechten Maustaste auf Deployment Descriptor und klicken Sie auf Deployment Descriptor Stub generieren.
Wählen Sie Ihr Projekt .__ aus und wählen Sie die Option "Deployment Descriptor" Und wählen Sie dann "Generate Deployment Descriptor stub"
Klicken Sie mit der rechten Maustaste auf das Projekt, gehen Sie zu Maven -> Update Project ... , und überprüfen Sie die Aktualisierung von Snapshots/Releases erzwingen . Klicken Sie anschließend auf Ok . Es ist fertig!
Dateien aus -web/.setting & - admin/.setting entfernen
Erstellen Sie den WEB-INF-Ordner in src/webapp und fügen Sie dann die web.xml-Seite in den WEB-INF-Ordner ein
Der Schritt: Wählen Sie Ihr Projekt aus, und wählen Sie die Option "Bereitstellungsdeskriptor" aus. Wählen Sie dann "Generieren des Bereitstellungsdeskriptor-Stubs". Das Problem ist, dass es nicht immer der Fall ist, dass wir web.xml benötigen. Daher ist es am besten, false an pom.xml anzuhängen
Es macht keinen Sinn, eine web.xml zu erstellen, nur elcipse will es, auch wenn es keine Notwendigkeit gibt. Dies ist der Fall, wenn Sie Servlet Conatiner eingebettet haben oder ohne xml cfg leben, wie Spring-Boot dies tut .. __ Sie können JavaEE (nutzloses Zeug) in Eclipse auf Projektebene oder global verwenden
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK