80

Maven プロジェクトをコンパイルしようとしていますが、体系的に次のエラー メッセージが表示されます。

[ERROR]Failed to execute goal on project ...:
Could not resolve dependencies for project ...:war:1.0.0:
The following artifacts could not be resolved: javax.jms:jms:jar:1.1,
com.sun.jdmk:jmxtools:jar:1.2.1, com.sun.jmx:jmxri:jar:1.2.1:
Failure to find javax.jms:jms:jar:1.1 in http://mirrors.ibiblio.org/maven2/
  was cached in the local repository, resolution will not be reattempted until
  the update interval of maven2-repository.ibiblio.mirror has elapsed or
  updates are forced -> [Help 1]

Sun jarsに関するこの Maven の投稿については知っていますが、問題は解決しません。

で指定できるリポジトリはありますpom.xmlか?

4

10 に答える 10

84

提案をありがとう。これを読んだ後、私は最終的にこの問題の解決策を見つけました。これらの依存関係は、ZooKeeper への依存関係から来ていることがわかりました。

pom.xml を次のように変更すると、問題が解決しました。

    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.3.2</version>
        <exclusions>
            <exclusion>
                <groupId>com.sun.jmx</groupId>
                <artifactId>jmxri</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jdmk</groupId>
                <artifactId>jmxtools</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.jms</groupId>
                <artifactId>jms</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
于 2011-02-05T19:06:08.190 に答える
24

Log4 バージョン 1.2.17 は、geronimo-jms に依存しているため、この問題を自動的に解決します。log4j-1.2.15 バージョンでも同じ問題が発生しました。


この問題に関する詳細を追加


1.2.17 を使用するとコンパイル時に問題が解決されましたが、サーバー (Karaf) は 1.2.15 バージョンを使用していたため、実行時に競合が発生していました。したがって、1.2.15 に戻す必要がありました。

JMS および JMX API は実行時に利用可能だったので、J2ee API をインポートしませんでした。

私がしたことは、1.2.17でコンパイル時の依存関係を使用しましたが、実行時に削除しました。

            <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
....
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                                                          <Import-Package>!org.apache.log4j.*,*</Import-Package>

.....
于 2012-08-27T16:51:35.620 に答える
15

設定を変更したくない場合の別の解決策:

JBoss リポジトリから jms-1.1.jar をダウンロードします。

mvn install:install-file -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar -Dfile=jms-1.1.jar

于 2012-02-20T09:42:27.807 に答える
3

mvncpuオプションを使用して更新を強制してみてください。

usage: mvn [options] [<goal(s)>] [<phase(s)>]

Options:
 -cpu,--check-plugin-updates            Force upToDate check for any
                                        relevant registered plugins
于 2011-02-05T18:16:45.767 に答える
3

プロジェクトでlog4j(1.2.15)の次のmaven依存関係バージョンを使用し始めたときも、同じ問題に直面しました。

<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.15</version>
</dependency>

次のエラーがスローされました。

The following artifacts could not be resolved: javax.jms:jms:jar:1.1, com.sun.jdmk:jmxtools:jar:1.2.1, com.sun.jmx:jmxri:jar:1.2.1: Could not transfer artifact javax.jms:jms:jar:1.1 from/to java.net (https://maven-repository.dev.java.net/nonav/repository): Cannot access https://maven-repository.dev.java.net/nonav/repository with type legacy using the available connector factories: BasicRepositoryConnectorFactory: Cannot access https://maven-repository.dev.java.net/nonav/repository with type legacy using the available layout factories: Maven2RepositoryLayoutFactory: Unsupported repository layout legacy -> [Help 1]

次の log4j (1.2.17) バージョンの使用を開始しましたが、構成関連の修正なしでこの問題を解決するのに役立ちました。

 <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
于 2018-10-28T15:29:03.713 に答える
2

ibliblioおよびリポジトリをチェックするとjava.net、jmx 関連の jar がどちらにも存在しないことがわかります。hereで説明されているように、手動で jms をダウンロードしてローカルにインストールする必要があると思います。

于 2011-02-05T18:34:34.880 に答える
0

まったく同じ問題ではないかもしれません。しかし、同じ行に素晴らしい記事がありますここに

于 2014-12-10T16:08:53.550 に答える
0

1 つの依存関係をインポートすると、この依存関係はcom.sun.jmx:jmxri:jar:1.2.1および他の依存関係に依存しcom.sun.jmx:jmxri:jar:1.2.1ますが、中央リポジトリには見つかりません。

別のバージョンをインポートしてみてください。

ここで、依存関係が log4j である可能性があり、インポートを試みることができるとしますlog4j:log4j:jar:1.2.13

于 2012-07-06T02:02:23.510 に答える