web-dev-qa-db-ja.com

web.xmlが見つからず、<failOnMissingWebXml>がtrueに設定されています

検討してください:

Enter image description here

Eclipse に単純な Maven プロジェクトを作成すると、このエラーが発生します。

web.xmlがなく、<failOnMissingWebXml>がtrueに設定されています

どうすればこの問題を解決できますか?

127
Yogesh Doke

あなたはこれもこのようにすることができます:

  1. Deployment Descriptor in プロジェクトエクスプローラ を右クリックします。
  2. デプロイメント記述子スタブの生成 を選択します。

src/main/webapp web.xml WEB-INF フォルダが生成されます。

enter image description here

148
Wojciechu

これはよくない誤りです。 <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>
356
Martijn Burger

/ src/main/webapp/WEB-INFの下にweb.xmlが既にあるが、それでもエラー「web.xmlが見つからないためtrueに設定されています」が表示される場合は、 // src/mainが含まれているかどうかを確認できます。プロジェクトソースの/ webapp .

実行できる手順は次のとおりです。

  1. これを確認するには、プロジェクトを右クリックして[プロパティ]ダイアログを開き、次に[Deployment Assembly]を開いてFolder/src/main/webappを追加します。設定を保存してから、
  2. EclipseメニューのProject - > Clean ...を選択してプロジェクトを削除すればエラーは解消されます。

(私はこれをEclipse Marsで検証しました)

26
Yuci

私は同じ問題を抱えています。勉強とグーグルの後、私は私の問題を解決しました:

プロジェクトフォルダを右クリックして、Java EE Toolsに移動し、Generate Deployment Descriptor Stubを選択します。これにより、フォルダweb.xmlsrc/main/webapp/WEB-INFが作成されます。

16
Tung

あまり冗長ではないこれもすることができます

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
15
liam mooney

Spring Tool Suiteを使用している場合は、「デプロイメント記述子スタブの生成」オプションがJava EEツールの下に移動します。

  1. 右クリック あなたの プロジェクト
  2. Java EE Tools を選択します。
  3. デプロイメント記述子スタブの生成オプションを選択

これにより、src/main/webapp/WEB-INF /フォルダ内にweb.xmlファイルが作成され、もちろんMavenのpom.xmlファイルからエラーが削除されます。

enter image description here

15
milan.latinovic

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>

この設定を保存すると、削除してもエラーが発生することはありません。 (その理由は説明できません。)

7
yukihane

'src/main/webapp/WEB-INF/'フォルダに正しいweb.xmlがあったにもかかわらず、私は同じ問題を抱えていました。

私はMaven build..を実行してmvn Eclipse:clean Eclipse:eclipseで(maven-> Eclipse)設定を作り直した後問題は消えました

そしてMaven -> Update Projectを使って(Eclipse-> maven)プラグイン特有のオプションを追加しました。

3
Boris Treukhov

私は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に設定します。

1
Saurav

これを行う:

Deployment Descriptorを右クリックして、[Generate Deployment Descriptor Stub]をクリックします。

1
Nuno Marques

プロジェクトを選択して[Deployment Descriptor]オプションを選択し、[Generate Deployment Descriptor stub]を選択します。

0

プロジェクトを右クリックし、 Maven - > Update Project ... に移動し、次に スナップショット/リリースの強制更新 を確認し、 Ok をクリックします。完了しました!

0
João V.

-web/.settingおよび - admin/.settingからファイルを削除します。

1

0
jun gao

Src/webappにWEB-INFフォルダを作成し、WEB-INFフォルダ内にweb.xmlページを含めます。

0

手順:プロジェクトを選択して[Deployment Descriptor]オプションを選択し、[Generate Deployment Descriptor stub]を選択しても問題ありません。問題は、web.xmlが必要なわけではないことです。そのため、pom.xmlにfalseを追加するのが最善です。

0
Lotchi Dagbo

必要がなくても、elcipseが望むweb.xmlを作成するのは意味がありません。これは、servlet conatinerが埋め込まれているか、spring-bootのようにxml cfgなしで動作している場合に当てはまります。プロジェクトレベルまたはグローバルで、Eclipseでただ単におかしなJavaEE(役に立たないもの)

Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
0
cforce