wake-up-neo.com

Fehlendes Artefakt com.Sun.jdmk: jmxtools: jar: 1.2.1

Ich habe ein einfaches Projekt aus maven-achetype-quickstart unter Eclipse Indigo erstellt, dann ging ich zum pom.xml gui-Editor und fügte im Abhängigkeits-Tab die Abhängigkeit log4j hinzu, indem im entsprechenden Dialog gesucht wurde. Jetzt sieht meine pom.xml so aus

<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 sagt, dass mein POM viele Probleme hat 

Fehlendes Artefakt javax.jms: jms: jar: 1.1 pom.xml/Test_Maven_03 Zeile 2 Maven-Abhängigkeitsproblem

Was bedeutet es und wie man die Maven-Funktion des automatischen Glasdownloads sieht. 

EDIT 1 Wenn ich log4j 1.2.16 anstelle von 1.2.15 auswähle, erhalte ich einen anderen Fehler: Missing artifact log4j:log4j:bundle:1.2.16. Ich sehe also überhaupt keine automatische Glasverwaltung.

47
Suzan Cioc

Wenn ich mich recht erinnere, ist es aufgrund von Lizenzproblemen nicht mehr enthalten. Wenn Sie keine jms-Funktionalität benötigen, können Sie jms aus der log4j-Abhängigkeit ausschließen:

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

Ändern Sie die Version von log4j in 1.2.16.

Die Metadaten für 1.2.15 sind, wie Sie festgestellt haben, fehlerhaft, da die Abhängigkeiten im zentralen Repository fehlen. Es gibt jedoch die Richtlinie, dass Artefakte oder Metadaten im zentralen Maven-Repository nicht geändert werden, da dies dazu führen kann, dass Builds nicht wiederholbar sind. Das heißt, ein Build verhält sich möglicherweise anders, wenn sich ein Artefakt oder seine Metadaten geändert haben.

Der Grund ist, dass es besser ist, schlechte Metadaten zu umgehen, als nicht reproduzierbare Builds zu erzeugen.

Es ist natürlich besser, wenn Projektbetreuer die Metadaten, die sie in die Zentrale hochladen, vorsichtiger behandeln.

42
Martin Ellis

Verwenden Sie Log4J 1.2.16 (das, auf das ich in Ihrer früheren Frage verlinkt habe) ; Es hat nicht die ältere JMX-Abhängigkeit und wird stattdessen von Geronimo bezogen.

11
Dave Newton

Die obigen Antworten (mit Ausnahme von JMX) sind in Ordnung, solange Sie keine der JMX-Abhängigkeiten benötigen. Sie können jedoch niemals die JAR-Dateien der JMX-Abhängigkeiten aus einem Standard-Maven-Repository herunterladen. Zitat Jörg Schaible-3 bei nabble.com :

Dies ist normal und wird es auch bleiben, da Sun/Oracle niemals .__ erteilt hat. Vertriebsrechte für diese Artefakte als separate Downloads. Du wirst haben Laden Sie sie von Oracle herunter, akzeptieren Sie ihre Lizenz und fügen Sie sie einem .__ hinzu. lokaler Repository-Manager.

Wenn Sie JMX verwenden möchten, müssen Sie den entsprechenden jmx Zip-Ordner von der Website von Oracle herunterladen.

1
gladclef