次のようなエラーが表示されます。
WARの組み立て中にエラーが発生しました:webxml属性が必要です(または更新モードで実行する場合は既存のWEB-INF/web.xml)
私はweb.xml
という正しい場所にprojectname\src\main\webapp\WEB-INF\web.xml
を持っています
これは何の原因と考えられますか?
あなたのMaven戦争のプラグインのコードスニペットを提供することができればそれは役に立ちます。 web.xml
は正しい場所にあるように見えますが、それでも場所を明示的に指定して試すことができます
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>src\main\webapp\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
この解決策は私にはうまくいきます(私は以前2.2を使っていました)。また、Servlet 3.0にはJavaベースの設定を使用しているので、web.xmlファイルは必要ありません。
それは私にとっても完璧に機能します。
<project>
.....
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>WebContent\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
これは、Webプロジェクトにweb.xmlをインクルードしておらず、mavenを使用して戦争を構築しようとしているためです。このエラーを解決するには、pom.xmlファイルでfailOnMissingWebXmlをfalseに設定する必要があります。
例えば:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
詳細についてはブログを参照してください。 https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html
XMLベースの構成からJavaベースの構成に移行していて、WebApplicationInitializerを実装することによってweb.xmlの必要性を取り除いた場合は、web.xmlファイルが存在するという要件を削除するだけです。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
...
</configuration>
私のwebXmlタグの値は動作するためにはこのように見える必要がありました:
<webXml>${project.basedir}\src\main\webapp\WEB-INF\web.xml</webXml>
私はまったく同じ問題を抱えていて、私はこのようにそれを解決しました:
WEB-INF
の下にsrc/main/webbapp
という名前の新しいフォルダを作成します
プロジェクト - > Java EEツール - >デプロイメント記述子スタブの生成を右クリックします。
これであなたのweb.xml
が生成されるはずです。
これがあなたの問題を解決するのに役立つことを願っています:D
それはあなたが正しい場所にweb.xmlを持っているように見えますが、そうであっても、このエラーはしばしばMavenが見ることを期待するものと一致しないディレクトリ構造によって引き起こされます。たとえば、Mavenを使用して構築しようとしているEclipse Webアプリケーションから始めるとします。
それが問題である場合は、簡単な解決策はsrc/main/Java
とasrc/main/webapp
ディレクトリ(および必要に応じて他のディレクトリ)に移動し、ファイルを移動するだけです。
これがmavenディレクトリレイアウトの概要です。 http://maven.Apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
デフォルトのプロジェクトパスを変更する場合は、web.xmlファイルの場所を指定する必要があります。次に例を示します。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.5</version>
<configuration>
<webXml>src\main\web\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
それは私にとってもうまくいった。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>WebContent\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
ドキュメンテーションに従って、それは言う:web.xmlファイルが抜けている場合構築を失敗するかどうか。 web.xmlファイルを使用せずにWARを構築したい場合は、falseに設定します。これは、web.xmlファイルがないオーバーレイを作成している場合に便利です。デフォルト値はtrueです。ユーザープロパティはfailOnMissingWebXmlです。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<extensions>false</extensions>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration> </plugin>
それがより明確になることを願っています
maven-war-plugin 2.3はこれを修正します。
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
</plugin>
...
テストサーバーでも同じエラーが発生しましたが、ローカルでは発生していません。数分後、IDEがpom.xmlと同期していないことがわかりました。これを解決する方法は次のとおりです。
ファイルが/ src/main/webapp/WEB-INF/web.xmlに存在しないようにフォルダ構造が変更されましたか?
この問題を解決するために、私は自分のWebフォルダにwebappという名前を付け、それをsrc/mainの中に置きました。 Mavenはデフォルトでweb.xmlを/ src/main/webapp/WEB-INF/web.xmlで探すようです。これを行うのであれば、web.xmlがどこにあるのかを明示的にmavenに伝える必要はありません。また、フォルダ構造を変更して最近ビルドが機能しなくなった場合は、これが原因の可能性があります。
注:これは古い投稿ですが、投稿されたソリューションでは、なぜ作業中のビルドが突然機能しなくなるのかを指摘していません。
Pom.xmlがProjectフォルダに正しく配置されていることを確認してください。ターゲットフォルダや他の場所にはありません。
Pom.xmlは比較的整列していないようです。
このエラーは、Mavenにファイルをwarにパッケージ化するように指示したために発生します。
<packaging>war</packaging>
本当に戦争が必要ですか?そうでない場合は、そこにjarを置きます。これは完全なコードです。
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>1.0-SNAPSHOT</version>
<groupId>com.your.groupid</groupId>
<artifactId>artifactid</artifactId>
<packaging>jar</packaging>
多くの答えがあり、それらのほとんどはうまくいくでしょうが、私はもう一つ重要な点を付け加えます。
あなたのログメッセージによると、あなたはmaven
を使っています。 Mavenは、いくつかの規約に基づいたプロジェクト管理構築ツールです。プロジェクトを構築し、適切なディレクトリ構造を作成し、ファイルをJava EE/WebアプリケーションのSun Microsystems Directory Structure Standard
に準拠する対応するディレクトリに配置します。
Mavenプラグイン、プロジェクトのルートディレクトリの変更/再設定など、多くのことを組み込むことができますが、1つの簡単なステップがあり、プロジェクトは問題ないはずです。 web.xml
をsrc\main\webapp\WEB-INF\
の下に配置して、mvn package
でプロジェクトをビルドしてみてください。
私はこれがこの問題にもう少し光を加えることを望む。