51 votes

Artefact manquant com.sun.jdmk: jmxtools: jar: 1.2.1

J'ai créé un projet simple de maven-achetype-démarrage rapide sous Eclipse Indigo, puis je suis allé à pom.xml l'éditeur de l'interface et dans l'onglet dépendances ajoute la dépendance log4j par recherche dans la boîte de dialogue appropriée. Maintenant, mon pom.xml ressemble

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org xsd/maven-.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
  <artifactId>Test_Maven_03</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>Test_Maven_03</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.15</version>
    </dependency>
  </dependencies>
  <dependencyManagement>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
    </dependency>
</dependencies>
  </dependencyManagement>
</project>

Eclipse me dit que mon POM ont beaucoup de problèmes comme

Artefact manquant javax.jms:jms:jar:1.1 pom.xml /Test_Maven_03 ligne 2 Problème de Dépendances Maven

Que signifie et comment voir maven fonction automatique de pot de téléchargement.

EDIT 1 Si je sélectionne log4j 1.2.16 au lieu de 1.2.15, je reçois un autre message d'erreur: Missing artifact log4j:log4j:bundle:1.2.16. Donc je ne vois pas automatique pot de gestion.

104voto

Lightforce Points 1821

Il n'est plus inclus en raison de problèmes de licence, si mes souvenirs sont bons. Si vous n'avez pas besoin de la fonctionnalité jms, vous pouvez l'exclure de la dépendance log4j:

 <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</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>
 

44voto

Martin Ellis Points 4323

Changer la version de log4j pour 1.2.16.

Les métadonnées pour 1.2.15 est mauvais, comme vous l'avez découvert, parce que les dépendances sont manquants dans le référentiel central. Cependant, il existe une politique de ne pas changer les artefacts ou les métadonnées dans le central repository maven, car cela peut conduire à s'appuie être unique. C'est, une construction peut se comporter différemment si un objet ou sa modification des métadonnées.

Le raisonnement est que c'est mieux de travailler autour de bad métadonnées de cause non reproductible construit.

C'est mieux, bien sûr, si les responsables de projet sont plus prudents sur les métadonnées qu'ils téléchargent à la centrale.

12voto

Dave Newton Points 93112

Utilisez Log4J 1.2.16 (celui auquel j'ai lié dans votre question précédente) ; il n’a pas la dépendance JMX plus ancienne et l’obtient plutôt de Geronimo.

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