50

Vaadin WAR をコンパイルしようとすると、次のエラーが発生します。

Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project testvaadin-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

このエラーは、maven が web.xml を見つけられないことを意味しますが、「Book of Vaadin」では、サーブレット API 3.0 とUI クラスで注釈を使用する場合、 web.xml は必要ないと書かれています。@WebServlet

(このガイドに従って) 別のプロファイルでウィジェット セットをコンパイルしていますが、このプロファイルを rnu すると正常にコンパイルされます。ただし、web プロジェクトのみをコンパイルすると、上記のエラーが発生します。

何を与える?

どうにかして Maven の動作をオーバーライドしますか? Vaadin は WEB-INF ディレクトリさえ作成しませんでした。WEB-INF フォルダーを作成し、そこに「ゴースト」web.xml を保持して、maven を満足させることができると思いますが、それは正しくないようです。

何か不足していますか?

誰かがこれに対する良い解決策を知っていますか?

4

4 に答える 4

3

同様のエラーでここに着陸しましたが、Maven 3.0でEclise Luna(4.4)を使用しています

私はこれをやってしまった:

  1. WebContent\WEB-INF\web.xmlsrc\main\webapp\WEB-INF\web.xmlに移動します

  2. を使用し<webXml>て、web.xml の場所を指定します。

<build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.0</version>
              <configuration>
                  <webXml>src\main\webapp\WEB-INF\web.xml</webXml>
              </configuration>
          </plugin>
      </plugins>
      <!-- we dont want the version to be part of the generated war file name -->
      <finalName>${project.artifactId}</finalName>
  </build>
  1. mvn パッケージを実行し、BUILD SUCCESS (WAR の場合) を確認します。

この前に、 web.xmlファイルの元のパスを使用してみました

<webXml>WebContent\WEB-INF\web.xml</webXml>

しかし、maven はピックアップしなかったため、maven フォルダー構造に従うのが最善です

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

于 2015-06-03T17:04:17.197 に答える
0

ここで説明されているように、標準の Maven ディレクトリ レイアウトに従っていない可能性がありますMaven ディレクトリ レイアウト

于 2015-05-28T07:39:52.973 に答える