Следующие артефакты не могут быть разрешены: javax.jms:jms:jar:1.1

Я пытаюсь скомпилировать проект 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]

Я знаю об этом посте Maven о Sun jars, но это не решает проблему.

у кого-нибудь есть решение? Есть ли хранилище, которое я могу указать в моем pom.xml?

Спасибо!

10 ответов

Решение

Спасибо за предложения. Я, наконец, нашел решение этой проблемы после прочтения этого. Оказывается, что эти зависимости пришли из зависимости от 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>

Если кто-то все еще хочет использовать jms1.1, добавьте публичный репозиторий jboss, и maven найдет его...

Проект-> Зависимости:

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

Проект-> хранилища:

  <repositories>
    <repository>
      <id>repository.jboss.org-public</id>
      <name>JBoss.org Maven repository</name>
      <url>https://repository.jboss.org/nexus/content/groups/public</url>
    </repository>  

Оно работает -

F:\mvn-repo-stuff>mvn verify
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building mvn-repo-stuff 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://repo1.maven.org/maven2/javax/jms/jms/1.1/jms-1.1.pom
Downloaded: http://repo1.maven.org/maven2/javax/jms/jms/1.1/jms-1.1.pom (677 B at 0.8 KB/sec)
[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
Downloading: http://repo1.maven.org/maven2/javax/jms/jms/1.1/jms-1.1.jar
Downloading: https://repository.jboss.org/nexus/content/groups/public/javax/jms/jms/1.1/jms-1.1.jar
Downloaded: https://repository.jboss.org/nexus/content/groups/public/javax/jms/jms/1.1/jms-1.1.jar (26 KB at 8.5 KB/sec)

Log4 версия 1.2.17 автоматически решает проблему, поскольку она зависит от geronimo-jms. Я получил ту же проблему с log4j- версия 1.2.15.


Добавлено больше вокруг вопроса


использование 1.2.17 решило проблему во время компиляции, но сервер (Karaf) использовал версию 1.2.15, создавая конфликт во время выполнения. Таким образом мне пришлось переключиться обратно на 1.2.15.

API JMS и JMX были доступны для меня во время выполнения, поэтому я не импортировал API J2ee.

я использовал зависимость времени компиляции от 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>

.....

Другое решение, если вы не хотите изменять свои настройки:

Загрузите jms-1.1.jar из репозитория JBoss, затем:

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

На самом деле реальным решением этой проблемы является использование артефакта jms-api-1.1-rev-1.jar, доступного в Maven Central: http://search.maven.org/#artifactdetails%7Cjavax.jms%7Cjms-api% 7C1.1-Rev-1%7Cjar

Попробуйте форсировать обновления, используя mvn cpu опция:

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

Options:
 -cpu,--check-plugin-updates            Force upToDate check for any
                                        relevant registered plugins

Я также столкнулся с той же проблемой, когда начал использовать следующую версию зависимости maven для log4j (1.2.15) в своем проекте.

<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>

Проверка ibliblio а также java.net хранилища показывают, что jmx-связанный jar не присутствует ни в одном. Я думаю, что вы должны вручную загрузить JMS и установить их локально, как описано здесь.

Может быть, не совсем та же проблема. но есть хорошая статья на той же строчке

Вы импортируете одну зависимость, и эта зависимость зависит от com.sun.jmx:jmxri:jar:1.2.1 и другие, но com.sun.jmx:jmxri:jar:1.2.1 не может быть найден в центральном хранилище,

так что вам лучше попробовать импортировать другую версию.

Здесь предположим, что ваша зависимость может быть log4j, и вы можете попробовать импортировать log4j:log4j:jar:1.2.13,

Другие вопросы по тегам