2012-02-07 20 views
0

私はこの昨日この質問をして、Mavenの問題であることが判明しました。 Java JMSの代わりにGeronimoを使用して回避策を見つけることはできましたが、Java JMSソリューションが機能しない理由を理解できませんでした。依存関係のMavenエラー:不完全なアーチファクト

私は質問を複製するのは好きではありませんが、これはまったく異なる元の質問であるため、これは欺瞞ではないと私は信じていません。

私はローカルキューにメッセージをプッシュできるように、私のアプリケーションでJMSを動作させようとしています。

<dependencies> 
    <dependency> 
     <groupId>javax.jms</groupId> 
     <artifactId>jms</artifactId> 
     <version>1.1</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

と右のバットオフは(Eclipseのを使用して)エラーを強調表示(赤)を取得する旨:

欠落アーティファクトするjavax.jmsを私のMaven pom.xmlでは、私は次の依存関係の宣言を追加します。 jms:jar:1.1

これをGeronimoなどの別のJMS APIに置き換えると、エラーは消えてしまいます。これは参照(Java)JMS依存性に問題がありますか?または、私のサンドボックスで何かが間違って構成されていますか

+0

ハイライトされたエラー?私はあなたがEclipseを使用することを意味すると思いますか?あなたはコンソールでそれを試しましたか?または 'プロジェクトのコンテキストメニュー> Maven> Update Dependencies'。 –

+1

'scope'部分を削除してみてください。 –

答えて

4

ここではメイコーレポブラウザで見ることができますhttp://mvnrepository.com/artifact/javax.jms/jmsアーティファクトのサイズは0バイトです。そのアーティファクトにいくつかの問題や特別なポリシーがあるようです。

4

1.1 jarファイルは、デフォルトのMavenのリポジトリには使用できませんJMS - あなたは(例えば用のJBoss 1)他の公共のリポジトリの1への参照を追加する必要があり

は、この答えは詳細 https://stackoverflow.com/a/5272660/672586

2

ありlog4jの推移的な依存関係のためにエラーが発生する可能性があります。このような依存関係を以下のように除外できます。

<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
    <exclusions> 
    <exclusion> 
     <artifactId>jms</artifactId> 
     <groupId>javax.jms</groupId> 
    </exclusion> 
    <exclusion> 
     <artifactId>jmxri</artifactId> 
     <groupId>com.sun.jmx</groupId> 
    </exclusion> 
    <exclusion> 
     <artifactId>jmxtools</artifactId> 
     <groupId>com.sun.jdmk</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 
+0

ありがとう、これは私の問題を解決しました。 –