81 votes

Les artefacts suivants n'ont pas pu être résolus : javax.jms:jms:jar:1.1

J'essaie de compiler un projet maven, mais j'obtiens systématiquement le message d'erreur suivant :

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

Je suis au courant ce post de maven sur les pots de soleil mais cela ne résout pas le problème.

Existe-t-il un référentiel que je peux spécifier dans mon pom.xml ?

86voto

JVerstry Points 12414

Merci pour les suggestions. J'ai enfin trouvé une solution à ce problème après avoir lu ce . Il s'avère que ces dépendances provenaient d'une dépendance à ZooKeeper.

J'ai modifié mon pom.xml comme suit et cela a résolu le problème :

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

Bonne solution de contournement. J'ai eu le même problème aujourd'hui avec une dépendance de log4j. Cela ressemble à maven-repository.dev.java.net/nonav/repository a un cert invalide peut-être (Chrome me donne un gros avertissement quand je tape cette url). C'est le serveur sur lequel sont hébergés ces dépôts, je pense.

0 votes

Je reçois également un avertissement de certificat SSL, mais je me suis rendu compte que c'était parce que le domaine n'existe pas. C'était à cause d'OpenDNS et de leur page de repli par défaut.

5 votes

Cela ressemble à une dépendance transitoire log4j:log4j:1.2.15 fait appel à ces dépendances bizarres. Exclure log4j de la dépendance de zookeeper, et inclure vous-même une version plus récente de log4j semble également résoudre ce problème.

67voto

matto Points 351

Si quelqu'un veut toujours utiliser jms1.1, ajoutez le dépôt public de jboss et maven le trouvera...

projet->dépendances :

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

projet->référentiels :

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

Cela fonctionne -

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)

0 votes

Je ne l'ai trouvé que dans le dépôt : repository.jboss.org/nexus/content/repositories/

0 votes

Est-ce que vous mettez cela dans la section <repositories> ? Cela n'a pas aidé dans mon cas.

0 votes

J'ai placé le référentiel dans le fichier settings.xml de User Settings, mais cela n'a pas fonctionné pour moi non plus.

24voto

R-JANA Points 339

La version 1.2.17 de Log4 résout automatiquement le problème car elle est dépendante de Geronimo-jms. J'ai eu le même problème avec la version 1.2.15 de log4j.


Ajouté avec plus autour de la question


L'utilisation de la version 1.2.17 a permis de résoudre le problème lors de la compilation, mais le serveur (Karaf) utilisait la version 1.2.15, créant ainsi un conflit lors de l'exécution. J'ai donc dû revenir à la version 1.2.15.

Les api JMS et JMX étaient disponibles pour moi au moment de l'exécution, je n'ai donc pas importé l'api J2ee.

J'ai utilisé la dépendance de la version 1.2.17 à la compilation, mais je l'ai supprimée à l'exécution.

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

.....

15voto

Adrián Deccico Points 885

Une autre solution si vous ne voulez pas modifier vos paramètres :

Télécharger jms-1.1.jar du dépôt JBoss alors :

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

0 votes

Cela a fonctionné jusqu'à la compilation du projet. merci. Une question : si je supprime le dossier .m2, je dois à nouveau lancer cette commande, n'est-ce pas ?

0 votes

Si je supprime le dossier .m2, je dois à nouveau lancer cette commande ? << Oui vous le devez. mvn install copiera un artefact dans votre repo mvn local.

3voto

dogbane Points 85749

Essayez de forcer les mises à jour en utilisant la commande mvn cpu option :

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

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

0 votes

Il n'est pas très bon d'utiliser -cpu. Voici pourquoi : "L'option de ligne de commande -cpu est dépréciée et sera supprimée dans les futures versions de Maven".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X