web-dev-qa-db-ja.com

WARをアセンブルするMavenエラー:pure Java Based Configuration and no no xml'sでSpringMVCプロジェクトをビルドするときにwebxml属性が必要です

純粋なJavaベースの構成でSpring MVCプロジェクトを開発しています。Mavenクリーンインストールを実行すると、以下のエラーが発生します。

プロジェクトSpringMVC-ShoppingCartで目標org.Apache.maven.plugins:maven-war-plugin:2.2:war(default-war)の実行に失敗しました:WARのアセンブルエラー:webxml属性が必要です(または既存のWEB-INF/web更新モードで実行する場合は.xml)-> [ヘルプ1]

エラーはweb.xmlが欠落していると言いますが、純粋なJavaベースの構成を使用したため、1つはありませんでした。

プロジェクトがweb.xmlなしでwarファイルをビルドおよび作成することを確認する方法は?

15
Omkar

このエラーは、バージョン2.6以前では maven-war-plugin がデフォルトでsrc/main/webapp/web.xmlファイルが存在することを想定しているために発生しますWARプロジェクト、それが見つかりませんでした。

注釈を使用して3.0.0以降にアップグレードします

プラグインのバージョン3.0.0の時点では、web.xmlの存在はデフォルトで必須ではなくなりました

failOnMissingWebXmlのデフォルト値はtrueからfalseに変更されました。

これは、プラグインをアップグレードすると問題が直接解決されることを意味します。次の構成をPOMに追加できます。

<plugin>
  <artifactId>maven-war-plugin</artifactId>
  <version>3.0.0</version>
</plugin>

その理由は、Servlet 3.0以降、web.xmlファイルはWebアプリケーションで不要になり、 を注釈 で置き換えることができるためですJavaベースの構成( MWAR-262 )。ただし、プロジェクトではこのファイルを置き換えるために注釈を使用しない場合があり、その場合はweb.xmlが実際に欠落する可能性があるため、バージョン3.0.1のプラグインでは、注釈 @WebServlet は、WARプロジェクトのコンパイルクラスパスにあります( MWAR-396 )。そうでなく、プロジェクトにweb.xmlファイルがない場合、プラグインはデフォルトで失敗します。

欠落しているweb.xmlを無視します

注釈の使用に関係なく、欠落しているweb.xmlファイルをプラグインに明示的に無視させる場合は、 failOnMissingWebXmlfalseへのパラメーター。サンプル構成は次のとおりです。

<plugin>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <failOnMissingWebXml>false</failOnMissingWebXml>
  </configuration>
</plugin>
36
Tunaki

これは、webプロジェクトにweb.xmlを含めておらず、mavenを使用してwarを構築しようとしていないためです。このエラーを解決するには、pom.xmlファイルでfailOnMissingWebXmlをfalseに設定する必要があります。

例えば:

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>   
</properties>

詳細についてはブログをご覧ください: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html

2
Ankur jain