Наступні артефакти не вдалося вирішити: javax.jms: jms: jar: 1.1


77

Я намагаюся скласти проект 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]

Я знаю про цю публікацію про банки від сонця , але це не вирішує проблему.

Чи існує сховище, яке я можу вказати у своєму pom.xml?

Відповіді:


83

Дякую за пропозиції. Нарешті я знайшов рішення цієї проблеми, прочитавши це . Виявляється, ці залежності походили від залежності до 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>

2
Хороший обхідний шлях. У мене сьогодні була така сама проблема із залежністю log4j. Схоже, maven-repository.dev.java.net/nonav/repository, можливо, має недійсний сертифікат (Chrome дає мені велике попередження, коли я натискаю цю URL-адресу). Це сервер, на якому розміщуються ці відділи.
Джеймс Купер,

Я також отримую попередження SSL-сертифіката, але я зрозумів, що це тому, що домен не існує. Це було через OpenDNS та їх резервну сторінку за замовчуванням.
Стів Бузонас,

4
Схоже, перехідна залежність log4j:log4j:1.2.15тягне за собою ці непарні залежності. Виключення log4j із залежності zookeeper та включення нової версії log4j також, здається, також вирішує цю проблему.
JeroenHoek

1
@JamesCooper Перевірте це ( unitstep.net/blog/2009/05/18/… ). Це пояснює проблему log4j.
smwikipedia

61

Якщо хтось все ще хоче використовувати 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)

Я знайшов його лише у сховищі: repository.jboss.org/nexus/content/repositories/…
krakover

Ви поміщаєте це в розділ <repositories>? У моєму випадку це не допомогло.
haridsv

Я розмістив сховище в налаштуваннях користувацьких налаштувань.xml, але це теж не зробило для мене роботи.
деспот

Для мене це дало цю помилку. Не вдалося знайти артефакт org.jboss.com.sun.httpserver: httpserver: jar: 1.0.0.Final in java.net ...... Коли я змінюю сховище на jboss, його завантажено зараз .. спасибі
Друміл Шах

23

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


Додано ще більше про проблему


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

JMS та JMX api були доступні для мене під час виконання, отже, я не імпортував 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>

.....

14

Ще одне рішення, якщо ви не хочете змінювати свої налаштування:

Завантажте jms-1.1.jar із сховища JBoss :

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


це працювало аж до компіляції проекту. Дякую. Одне питання: якщо я видалю папку .m2, мені доведеться знову виконати цю команду. я правий?
hephestos

якщо я видалю папку .m2, мені доведеться знову виконати цю команду? << Так ти робиш. mvn install скопіює артефакт до вашого локального репозиторію mvn.
Adrián Deccico

3

Спробуйте примусити оновлення за допомогою cpuопції mvn :

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

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

Його не так добре використовувати -cpu. Ось чому "Параметр командного рядка -cpu застарілий і буде вилучений у наступних версіях Maven."
деспот

3

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


Я думаю, що це найкраще рішення у випадку, якщо ваші проекти залежать від JMS. Таким чином ви також делегуєте Maven дозвіл JMS, як це можна було б очікувати.
danidemi

Просте, просте рішення. Не потрібно додавати нове сховище.
downeyt

3

Я також зіткнувся з тією ж проблемою, коли я почав використовувати наступну версію залежності 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>

2

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


Я згоден. Це вирішує більшість проблем. Перегляньте jarvana.com та тип поля Project Project groupId: артефакт Id jar, який ви шукаєте. Якщо ви не можете знайти файл, тоді огляньте пам і спробуйте з'ясувати, звідки ви можете його завантажити (див. DownloadUrl тут: jarvana.com/jarvana/inspect-pom/com/sun/jdmk/jmxtools/1.2.1 /… ). Після завантаження з допомогою наступної команди: MVN установки: установка-файл -DgroupId = groupIdOfJar -DartifactId = artifactIdOfJar -Dversion = versionOfJar -Dpackaging = баночка -Dfile = "pathToJar.jar" -DgeneratePom = істина
деспот

Також перевірити різні репозиторіїв тут: docs.codehaus.org/display/MAVENUSER/Mirrors+Repositories І Maven Дзеркало і сховища керівництва: maven.apache.org/guides/mini/guide-mirror-settings.html
деспот

0

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

тому вам краще спробувати імпортувати іншу версію.

Тут припустимо, що ваша залежність може бути log4j, і ви можете спробувати імпортувати log4j:log4j:jar:1.2.13.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.