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 sais à propos de ce post maven à propos de Sun jars , mais cela ne résout pas le problème.
Quelqu'un a-t-il une solution? Existe-t-il un référentiel que je peux spécifier dans mon pom.xml?
Merci!
Merci pour les suggestions. J'ai finalement trouvé une solution à ce problème après avoir lu this . 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>
Si quelqu'un veut toujours utiliser jms1.1, alors ajoutez le référentiel public 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>
Ça marche -
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 version 1.2.17 résout automatiquement le problème car il dépend de geronimo-jms. J'ai eu le même problème avec la version log4j-1.2.15.
Ajouté avec plus autour de la question
l'utilisation de 1.2.17 a résolu 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 à 1.2.15.
L'API JMS et JMX était disponible pour moi au moment de l'exécution, donc je n'ai pas importé l'api J2ee.
ce que j’ai fait, c’est que j’ai utilisé la dépendance à la compilation 1.2.17, mais que j’ai enlevé le fichier au moment de 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>
.....
Une autre solution si vous ne souhaitez pas modifier vos paramètres:
Téléchargez jms-1.1.jar à partir du référentiel JBoss alors:
mvn install:install-file -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar -Dfile=jms-1.1.jar
Essayez d'imposer des mises à jour à l'aide de l'option mvn cpu
:
usage: mvn [options] [<goal(s)>] [<phase(s)>]
Options:
-cpu,--check-plugin-updates Force upToDate check for any
relevant registered plugins
En fait, la vraie solution à ce problème consiste à utiliser l'artefact jms-api-1.1-rev-1.jar disponible sur Maven Central: http://search.maven.org/#artifactdetails%7Cjavax.jms% 7Cjms-api% 7C1.1-rev-1% 7Cjar
Un contrôle de ibliblio
et Java.net
Les référentiels révèlent que le fichier jar lié à jmx n’est pas présent non plus. Je pense que vous devriez télécharger manuellement jms et les installer localement comme indiqué ici .
J'ai également rencontré le même problème lorsque j'ai commencé à utiliser la version de dépendance maven suivante pour log4j (1.2.15) dans mon projet.
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>
L'erreur suivante a été lancée sur moi.
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]
J'ai commencé à utiliser la version suivante de log4j (1.2.17) et cela m'a aidé à résoudre ce problème sans aucun correctif lié à la configuration.
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Vous importez une dépendance et cette dépendance dépend de com.Sun.jmx:jmxri:jar:1.2.1
et autres, mais com.Sun.jmx:jmxri:jar:1.2.1
ne peut pas être trouvé dans le référentiel central,
vous feriez donc mieux d'essayer d'importer une autre version.
Supposons ici que votre dépendance soit log4j et que vous puissiez essayer d'importer log4j:log4j:jar:1.2.13
.
Peut-être pas exactement le même problème. mais il y a un article de Nice sur la même ligne Ici