Considérer:
Lorsque je crée un simple Maven projet dans Eclipse je reçois cette erreur:
le fichier web.xml est manquant et
<failOnMissingWebXml>
est défini sur vrai
Comment puis-je résoudre ce problème?
C'est une erreur maven. Il indique qu'il attend un fichier web.xml dans votre projet car il s'agit d'une application Web, comme indiqué par <packaging>war</packaging>
. Cependant, pour les applications Web récentes, un fichier web.xml est totalement facultatif. Maven doit rattraper son retard sur cette convention. Ajoutez-le à votre maven pom.xml
pour le laisser suivre et vous n’aurez pas besoin d’ajouter un web.xml
inutile à votre projet:
<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>
C’est une meilleure solution que d’ajouter un web.xml
vide, car de cette façon votre produit final reste propre, vous ne faites que modifier vos paramètres de construction.
Pour les versions plus récentes de maven, vous pouvez également utiliser la version plus courte:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Si vous avez déjà un fichier web.xml sous/src/main/webapp/WEB-INF mais que le message d'erreur "Web.xml est manquant et qu'il est défini sur true", vous pouvez vérifier si vous avez inclus/src/main/webapp dans la source de votre projet.
Voici les étapes que vous pouvez suivre:
(J'ai vérifié cela avec Eclipse Mars)
J'ai le même problème. Après avoir étudié et googlé, j'ai résolu mon problème:
Faites un clic droit sur le dossier du projet, allez à Java EE Tools
, sélectionnez Generate Deployment Descriptor Stub
. Ceci créera web.xml
dans le dossier src/main/webapp/WEB-INF
.
Vous pouvez également faire cela qui est moins verbeux
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Si vous utilisez Spring Tool Suite, l'option de génération de stub de descripteur de déploiement est déplacée sous les outils Java EE. Vous devez donc:
Cela créera un fichier web.xml dans le dossier src/main/webapp/WEB-INF /, et supprimera bien sûr l’erreur du fichier pom.xml de Maven.
Eclipse reconnaît le répertoire par défaut incorrect webapp
. Nous devons donc le définir clairement par maven-war-plugin
.
<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>
Une fois que vous avez enregistré ce paramètre, l’erreur ne se produira jamais si elle est supprimée .
J'ai eu le même problème, même si j'avais le dossier 'src/main/webapp/WEB-INF/'
avec web.xml
correct.
Le problème a disparu après avoir recréé la configuration (maven-> Eclipse) avec Maven build..
J'ai exécuté mvn Eclipse:clean Eclipse:eclipse
Et puis j'ai utilisé Maven -> Update Project
pour ajouter des options spécifiques au plugin (Eclipse-> maven).
J'ai rencontré ce problème dans Eclipse uniquement, tout fonctionnait correctement en ligne de commande Maven et mon fichier web.xml existait. C'est un projet mature (déjà déployé en production) qui a été impacté. Mon problème était lié aux métadonnées Eclipse. Il y avait un problème avec l'un des fichiers de mon dossier .settings /, en particulier org.Eclipse.wst.common.component avait été modifié. J'ai pu restaurer ce fichier dans sa version précédente, ce qui a résolu le problème dans mon cas.
Notez que la réponse de Yuci n'a pas fonctionné pour moi. Lorsque j'ai essayé de cliquer sur l'assemblage de déploiement dans les propriétés Eclipse, j'ai reçu une erreur indiquant que "la page actuellement affichée contient des valeurs incorrectes".
Pour un projet avec web.xml présent Projet -> Propriétés -> Assemblage de déploiement, où vous pouvez ajouter un dossier src/main/webapp . Enregistrer les modifications . Nettoyer le projet Aller.
Pour un projet avec web.xml non présent Définissez failOnMissingWebXml sur false dans pom.xml sous la balise properties.
Faire ceci:
Cliquez avec le bouton droit sur le descripteur de déploiement, puis sur Générer un stub de descripteur de déploiement.
Sélectionnez votre projet .__ et sélectionnez l'option "Descripteur de déploiement" Puis choisissez "Générer un stub de descripteur de déploiement".
Faites un clic droit sur le projet, allez à Maven -> Mettre à jour le projet ..., puis cochez la case Forcer la mise à jour des instantanés/communiqués, puis cliquez sur Ok. C'est fait!
Supprimer les fichiers de -web/.setting & - admin/.setting
Créez le dossier WEB-INF dans src/webapp et incluez la page web.xml dans le dossier WEB-INF, puis
L'étape de: Sélectionnez votre projet et sélectionnez l'option "Descripteur de déploiement", puis choisissez "Générer un stub de descripteur de déploiement", qui fonctionne correctement. Le problème est que nous n’avons pas toujours besoin de web.xml. Il est donc préférable d’ajouter false à pom.xml.
Créer un fichier web.xml n'a pas de sens. Elcipse le veut, même s'il n'en a pas besoin. C’est le cas si vous avez un conletin de servlet intégré ou vivez sans cfg xml, comme le fait Spring-Boot.
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK