検討してください:
Eclipse に単純な Maven プロジェクトを作成すると、このエラーが発生します。
web.xmlがなく、
<failOnMissingWebXml>
がtrueに設定されています
どうすればこの問題を解決できますか?
これはよくない誤りです。 <packaging>war</packaging>
で示されているように、それはWebアプリケーションであるため、プロジェクト内でweb.xmlファイルを期待しているということです。ただし、最近のWebアプリケーションではweb.xmlファイルは完全にオプションです。 Mavenはこの規約に追いつく必要があります。 Mavenに追いつくためにこれをあなたのMaven pom.xml
に追加すれば、あなたはあなたのプロジェクトに無駄なweb.xml
を追加する必要がなくなります。
<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>
これは、空のweb.xml
を追加するよりも優れた解決策です。この方法では、最終製品はきれいなままで、ビルドパラメータを変更するだけです。
より新しいバージョンのmavenでは、もっと短いバージョンを使うこともできます。
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
/ src/main/webapp/WEB-INFの下にweb.xmlが既にあるが、それでもエラー「web.xmlが見つからないためtrueに設定されています」が表示される場合は、 // src/mainが含まれているかどうかを確認できます。プロジェクトソースの/ webapp .
実行できる手順は次のとおりです。
(私はこれをEclipse Marsで検証しました)
私は同じ問題を抱えています。勉強とグーグルの後、私は私の問題を解決しました:
プロジェクトフォルダを右クリックして、Java EE Tools
に移動し、Generate Deployment Descriptor Stub
を選択します。これにより、フォルダweb.xml
にsrc/main/webapp/WEB-INF
が作成されます。
あまり冗長ではないこれもすることができます
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Eclipseは誤ったデフォルトのwebapp
ディレクトリを認識します。したがって、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>
この設定を保存すると、削除してもエラーが発生することはありません。 (その理由は説明できません。)
'src/main/webapp/WEB-INF/'
フォルダに正しいweb.xml
があったにもかかわらず、私は同じ問題を抱えていました。
私はMaven build..
を実行してmvn Eclipse:clean Eclipse:eclipse
で(maven-> Eclipse)設定を作り直した後問題は消えました
そしてMaven -> Update Project
を使って(Eclipse-> maven)プラグイン特有のオプションを追加しました。
私はEclipseでのみこの問題に遭遇しました、Mavenコマンドラインですべてがうまく働きました、そして私のweb.xmlファイルは存在しました。影響を受けたのは成熟したプロジェクト(すでに本番環境に展開されている)でした。私の問題はEclipseメタデータに関連していました。私の.settings /フォルダー内のファイルの1つに問題がありました、特にorg.Eclipse.wst.common.componentが変更されていました。私はこのファイルを以前のバージョンに復元することができ、それが私の場合の問題を解決しました。
Yuciの答えが私にはうまくいかなかったことに注意してください。EclipseのプロパティーでDeployment Assemblyをクリックしようとすると、「現在表示されているページに無効な値が含まれています」というエラーが出ました。
web.xmlが存在するプロジェクトの場合 [プロジェクト] - > [プロパティ] - > [デプロイメントアセンブリ]。フォルダsrc/main/webappを追加できます。変更を保存する。軌道に乗るためにプロジェクトをきれいにしなさい。
web.xmlがないプロジェクトの場合 propertiesタグの下のpom.xmlでfailOnMissingWebXmlをfalseに設定します。
これを行う:
Deployment Descriptorを右クリックして、[Generate Deployment Descriptor Stub]をクリックします。
プロジェクトを選択して[Deployment Descriptor]オプションを選択し、[Generate Deployment Descriptor stub]を選択します。
プロジェクトを右クリックし、 Maven - > Update Project ... に移動し、次に スナップショット/リリースの強制更新 を確認し、 Ok をクリックします。完了しました!
-web/.settingおよび - admin/.settingからファイルを削除します。
Src/webappにWEB-INFフォルダを作成し、WEB-INFフォルダ内にweb.xmlページを含めます。
手順:プロジェクトを選択して[Deployment Descriptor]オプションを選択し、[Generate Deployment Descriptor stub]を選択しても問題ありません。問題は、web.xmlが必要なわけではないことです。そのため、pom.xmlにfalseを追加するのが最善です。
必要がなくても、elcipseが望むweb.xmlを作成するのは意味がありません。これは、servlet conatinerが埋め込まれているか、spring-bootのようにxml cfgなしで動作している場合に当てはまります。プロジェクトレベルまたはグローバルで、Eclipseでただ単におかしなJavaEE(役に立たないもの)
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK