web-dev-qa-db-ja.com

プロジェクトファセットの動的Webモジュールのバージョンを2.5に変更できません

別の会社からJava Webアプリを継承しました。 (Mavenプロジェクトのインポートを介して)Eclipseにロードしようとしていますが、「プロジェクトファセットダイナミックWebモジュールのバージョンを2.5に変更できません」というエラーが表示されます。

私は少しいじっていましたが、見つけていることの1つは、web.xmlファイルが

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:web="http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

また、pom.xmlは次の依存関係を指定します

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

しかし、.settingsフォルダーには、このファイルが含まれています

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="Java" version="1.6"/>
  <installed facet="jst.web" version="3.0"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

ここで指定された3.0は、他の場所で指定された2.5と競合していると思われます。それは本当でしょうか?この設定の組み合わせでエラーが発生しない方法はありますか? (例えば、Eclipseの古いバージョン?)

33
joelt

短縮版

これを試して:

  • プロジェクトファセットの動的Webモジュールの選択を解除します。 プロジェクト->設定->プロジェクトファセットを右クリック
  • 次にMaven-> Update Projectを再度実行します。

ロングバージョン

Eclipseの動的なWeb/Springの一部を学習中にこの問題を何度も経験しましたが、他のソリューションでは問題を確実に解決したり、問題の原因を理解するのに役立ちませんでした。私は始めていると思います。

したがって、Maven-> Update Projectを実行すると、m2e(私は推測)が動的WebモジュールをProject Facetsに追加しているように見えます。ここで追加することが重要な言葉です。そのため、[...]からweb.xmlを更新して更新したとき http://Java.Sun.com/xml/ns/javaee/web-app_2_3.xsd "version =" 2.3 " >から[...] http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd "version =" 2.5 ">

「プロジェクトファセットダイナミックWebモジュールのバージョンを2.5に変更できません。」というエラーが表示されました。

私がそれを試したとき、3.0でも同じことが言えました。

M2eはこれをプロジェクトに追加できるように見えますが、エラーのように、一度設定するとchangeすることはできません。したがって、プロジェクトのファセットページで選択を解除するだけです。ヒット設定を保存して、Mavenアップデートを再度実行します。

Eclipse Project Facets Dynamic Web Module

サーバー(Tomcatなど)ファセットが追加されている場合、pom.xmlにjavax.servletを含める必要はありません。

Servlet-Api included in libraries

100
TheSporkboy

プロジェクトファセットダイナミックWebモジュールのバージョンを3.0に変更できませんか? を参照してください。

プロジェクトを閉じ、プロジェクトの.settingsフォルダーにある「org.Eclipse.wst.common.project.facet.core.xml」ファイルを直接更新します。

13
JackDev

私の推測では、元の作者は、最初のインポート後にEclipseプロジェクトのProject Facetsを手動で変更し、その後は実行されませんでしたMaven | Update

とにかく、Mavenプロジェクトの場合、Eclipseメタデータ(つまり.classpath, .project, .settings/)をSCMにコミットせず、インポート時にm2eに生成させることをお勧めします。

そのため、プロジェクト構造をコピーし、そのコピーからすべてのEclipseメタデータを削除してから、m2e経由でインポートすることをお勧めします。

インポート時にまだエラーがある場合は、少なくとも元の作者がデフォルトを微調整したというヒントを得ることができるので、クリーンアップを開始する場所がわかります。

6
Harald Wellmann

ナビゲータービュー([ウィンドウ]> [ビューの表示]> [その他]> [全般])を開き、プロジェクトの下に.settingsフォルダーがあることを確認して展開し、「org.Eclipse.wst.common.project.facet.core.xml」ファイルを開きます。 」、以下の変更を行い、ファイルを保存します。

この行の動的Webモジュールのバージョンを2.5に変更します– <installed facet=”jst.web” version=”2.4″/>

この行のJSFバージョンを2.0に変更します– <installed facet=”jst.jsf” version=”1.1″/>

この行のJavaバージョンを1.5以上に変更します– <installed facet=”Java” version=”1.5″/>.

この変更後、プロジェクトプロパティからプロジェクトファセットダイナミックWebモジュールのバージョンを変更できます。あなたにこの警告を与えることなく

3
Hatem Badawi

私の場合、動的ファセット形式2.3から3.1に変更したかったのです。

5月web.xmlの1つの番号の変更は私を助けた

から:

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://Java.Sun.com/dtd/web-app_2_3.dtd" >

<web-app  > 
  <display-name>Archetype Created Web Application</display-name>
</web-app>

宛先:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://Java.Sun.com/dtd/web-app_2_5.dtd" >

<web-app  > 
  <display-name>Archetype Created Web Application</display-name>
</web-app>

そして、プロパティ-> Project Facets-> Dynamic Web Moduleのチェックを外す-> OK

Mavenプロジェクトを更新しました。

2

このブログ投稿は非常に役立ちました: 修正方法プロジェクトファセットダイナミックWebモジュールのバージョンをEclipseで3.0エラーに変更できません

この投稿では、右クリック>プロパティ>プロジェクトファセット> Dynamic Web Moduleのバージョンを正しいバージョンに変更しても解決しない場合は、次を試してください:右クリック>プロパティ>リソース> locationパート。 org.Eclipse.wst.common.project.facet.coreファイルを開き、必要に応じてjst.webバージョンを変更します。プロジェクトを更新します。それは動作するはずです:)

1
user1419243

私の解決策は:

Web.xmlのヘッダーを変更します。

置いた:

<web-app xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee 
          http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Servlet 3.0 Web Application</display-name>
</web-app>

そして、単にMaven-> Update Project

1
Gere

両方のファイルを変更する必要があります!

最初のステップ:Eclipseを閉じます

2番目のステップ:org.Eclipse.wst.common.project.facet.core.xmlでファセットラベル「jst.web」を変更します

そして最後に、web.xmlのxsdのバージョンを変更します

それは私に役立つ

0
jirou

Web-appの現在のスキーマの場所は次のとおりです。

xsi:schemaLocation="http://www.Oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_0.xsd"
0
Mike V.C.

@TheSporkboyはほぼ正しいです。今日私はこれに出くわし、構成をいじってから解決策は次のようになりました。

1-プロジェクトファセットの動的Webモジュールの設定を最新の3.1に変更する

2- .../web-app_2_5.xsdから.../web-app_3_1.xsdにプロジェクトのweb.xmlを開きます

3- Mavenプロジェクトを更新する

0
AlexH