3

おそらく、Mavenの問題ではありません。m2e / wtpの問題、多分?

背景を説明するために、EclipseでICEFacesプロジェクトをセットアップし、Tomcat7.0.30にデプロイしました。Tomcatへのデプロイ中にservlet-api.jarのMavenPOM構成が提供されたスコープにあることは無視されているようです。私は何かが足りないのですか?Mavenに正しく実行させるにはどうすればよいですか?

プロジェクトでは、javax.servlet-api.jarがICEFacesの推移的な依存関係として取り込まれます。Tomcatには独自のservlet-api.jarが付属しているため、除外するようにマークを付け、明示的な依存関係を追加しました(scope:provided)。

情報:サーブレットエンジンの起動:Apache Tomcat /7.0.302013年
3月6日10:44:05org.apache.catalina.loader.WebappClassLoadervalidateJarFile情報:validateJarFile(D:\ employees \ test-project \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ test-project \ WEB-INF \ lib \ javax.servlet-api-3.0.1.jar)-jarがロードされていません。サーブレット仕様2.3、セクション9.7.2を参照してください。問題のあるクラス:javax / servlet / Servlet.class
06-Mar-2013 10:44:07 com.sun.faces.config.ConfigureListener contextInitialized

Maven POM

<dependency>
  <groupId>org.icefaces</groupId>
  <artifactId>icefaces-ace</artifactId>
  <version>3.2.0</version>
  <exclusions>
    <exclusion>
      <artifactId>javax.servlet-api</artifactId>
      <groupId>javax.servlet</groupId>
    </exclusion>
  </exclusions>
</dependency>

And added a dependency with provided scope

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

セットアップ:
* Eclipse Juno
*Mavenwebappプロジェクトが作成されました。
*JSFおよびICEFacesファセットが有効化および構成されました。
*Maven依存関係をデプロイするようにEclipseプロジェクトのデプロイメントアセンブリを構成しました。
*プロジェクトをEclipseからTomcatにデプロイする([サーバー]タブを右クリック>[追加/削除]>プロジェクトを追加>[Publsh])

*アップデート1*

mvndependentity:tree -Dverbose

これらの警告についてどうしたらよいかわからない。デバッグログを有効にする方法を調べます。

[INFO] Scanning for projects...  
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building test-project Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ test-project ---
[WARNING] The POM for org.codehaus.plexus:plexus-utils:jar:1.0.4 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details  
[WARNING] The POM for classworlds:classworlds:jar:1.1-alpha-2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven:maven-plugin-api:jar:2.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven:maven-model:jar:2.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven:maven-settings:jar:2.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO] com.mochapenguin:test-project:war:0.0.1-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- org.icefaces:icefaces-ace:jar:3.2.0:compile
[INFO] |  \- org.icefaces:icefaces:jar:3.2.0:compile
[INFO] |     +- org.glassfish:javax.faces:jar:2.1.6:compile
[INFO] |     +- javax.portlet:portlet-api:jar:2.0:compile
[INFO] |     +- org.icepush:icepush:jar:3.2.0:compile
[INFO] |     |  \- javax.mail:mail:jar:1.4.1:compile
[INFO] |     |     \- javax.activation:activation:jar:1.1:compile
[INFO] |     \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.12:compile
[INFO] +- org.icefaces:icefaces-compat:jar:3.2.0:compile
[INFO] |  +- (org.icefaces:icefaces:jar:3.2.0:compile - omitted for duplicate)
[INFO] |  +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] |  +- commons-logging:commons-logging:jar:1.1:compile
[INFO] |  \- javax.servlet:jstl:jar:1.2:compile
[INFO] \- javax.servlet:javax.servlet-api:jar:3.0.1:provided
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.440s
[INFO] Finished at: Wed Mar 06 13:24:47 GMT 2013
[INFO] Final Memory: 6M/120M
[INFO] ------------------------------------------------------------------------

*アップデート2*

Junoに次のバージョンをインストールしました。

m2e - Maven Integration for Eclipse 1.3.0.**20130129-0926** org.eclipse.m2e.feature.feature.group   Eclipse.org - m2e

@eisが指摘した投稿の回答にリンクを追加しました。更新を確認しました。Eclipseは、利用可能なマイナーアップデートがあることを示しました(1.3.1.20130219-1424)。しかし、更新は次のエラーで失敗しました。

An error occurred while collecting items to be installed
session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,com.ning.async-http-client,1.6.5.20130219-0923
No repository found containing: osgi.bundle,org.eclipse.m2e.archetype.common,1.3.1.20130219-0923
No repository found containing: osgi.bundle,org.eclipse.m2e.core,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.core.ui,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.discovery,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.editor,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.editor.xml,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.jdt,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.launching,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.lifecyclemapping.defaults,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.maven.indexer,1.3.1.20130219-0923
No repository found containing: osgi.bundle,org.eclipse.m2e.maven.runtime,1.3.1.20130219-0923
No repository found containing: osgi.bundle,org.eclipse.m2e.model.edit,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.refactoring,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.eclipse.m2e.scm,1.3.1.20130219-1424
No repository found containing: osgi.bundle,org.jboss.netty,3.2.5.Final-20130219-0923
No repository found containing: org.eclipse.update.feature,org.eclipse.m2e.feature,1.3.1.20130219-1424

そこで、既存のm2eをアンインストールして再インストールしました。これはうまくいきました。含まれています

m2e - slf4j over logback logging (Optional) 1.3.1.20130219-1424 org.eclipse.m2e.logback.feature.feature.group   Eclipse.org - m2e

しかし、問題は残っています。Junoはまだjavax.servlet-api3.0.1.jarをデプロイしています:(


解決しました

(最初の免責事項:これは私の理解です。訂正されてうれしいです)

m2e + m2eエクストラ(まだ別々のエンティティなのか、それともm2eだけなのかはわかりません)はすでにJunoにインストールされているようです。正しく動作させるには、 m2e-wtpコネクタをインストールする必要がありました。Mavenスコープは現在名誉を与えられています。

m2e-wtpコネクタをインストールします。Junoの場合-[ウィンドウ]>[設定]>[Maven]>[検出]>[カタログを開く]>[m2e-wtpコネクタ]のチェックボックスをオンにしてインストールします。これにより、インストールされているソフトウェアに以下が追加されます

m2e-wtp - Maven Integration for WTP (Incubation)    0.17.0.20130212-1821    org.eclipse.m2e.wtp.feature.feature.group   Eclipse.org - m2e-wtp
4

3 に答える 3

0

私にとって、これはMavenの問題ではありません。Maven は servlet-api が提供されていることを取得しますが、maven を使用してパッケージをデプロイまたはビルドするのではなく、maven でコンパイルし (おそらく m2e を使用して)、Eclipse を使用してデプロイするだけです。m2e/eclipse はこの問題を処理する必要がありますが、そうではありません。

この同様のスレッドによると、m2e + m2e-extras をインストールすると修正されるはずです。Eclipse の動作の詳細については、他の回答も参照してください。

于 2013-03-06T14:32:25.937 に答える
0

私はEclipse Junoを使用しており、「m2e - wtp」プラグインをインストールすると問題も解決しました。

于 2013-03-28T09:40:09.103 に答える