別の会社から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の古いバージョン?)
短縮版
これを試して:
ロングバージョン
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アップデートを再度実行します。
サーバー(Tomcatなど)ファセットが追加されている場合、pom.xmlにjavax.servletを含める必要はありません。
プロジェクトファセットダイナミックWebモジュールのバージョンを3.0に変更できませんか? を参照してください。
プロジェクトを閉じ、プロジェクトの.settingsフォルダーにある「org.Eclipse.wst.common.project.facet.core.xml」ファイルを直接更新します。
私の推測では、元の作者は、最初のインポート後にEclipseプロジェクトのProject Facetsを手動で変更し、その後は実行されませんでしたMaven | Update。
とにかく、Mavenプロジェクトの場合、Eclipseメタデータ(つまり.classpath, .project, .settings/
)をSCMにコミットせず、インポート時にm2eに生成させることをお勧めします。
そのため、プロジェクト構造をコピーし、そのコピーからすべてのEclipseメタデータを削除してから、m2e経由でインポートすることをお勧めします。
インポート時にまだエラーがある場合は、少なくとも元の作者がデフォルトを微調整したというヒントを得ることができるので、クリーンアップを開始する場所がわかります。
ナビゲータービュー([ウィンドウ]> [ビューの表示]> [その他]> [全般])を開き、プロジェクトの下に.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モジュールのバージョンを変更できます。あなたにこの警告を与えることなく
私の場合、動的ファセット形式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プロジェクトを更新しました。
このブログ投稿は非常に役立ちました: 修正方法プロジェクトファセットダイナミックWebモジュールのバージョンをEclipseで3.0エラーに変更できません 。
この投稿では、右クリック>プロパティ>プロジェクトファセット> Dynamic Web Module
のバージョンを正しいバージョンに変更しても解決しない場合は、次を試してください:右クリック>プロパティ>リソース> location
パート。 org.Eclipse.wst.common.project.facet.core
ファイルを開き、必要に応じてjst.web
バージョンを変更します。プロジェクトを更新します。それは動作するはずです:)
私の解決策は:
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
両方のファイルを変更する必要があります!
最初のステップ:Eclipseを閉じます
2番目のステップ:org.Eclipse.wst.common.project.facet.core.xmlでファセットラベル「jst.web」を変更します
そして最後に、web.xmlのxsdのバージョンを変更します
それは私に役立つ
Web-appの現在のスキーマの場所は次のとおりです。
xsi:schemaLocation="http://www.Oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_0.xsd"
@TheSporkboyはほぼ正しいです。今日私はこれに出くわし、構成をいじってから解決策は次のようになりました。
1-プロジェクトファセットの動的Webモジュールの設定を最新の3.1に変更する
2- .../web-app_2_5.xsdから.../web-app_3_1.xsdにプロジェクトのweb.xmlを開きます
3- Mavenプロジェクトを更新する