2017-02-09 2 views
0

Ich versuche, mein dropwizard Projekt mit dem folgenden Befehl zu bauen:Maven build: Fehler unzipping jar (mysql-connector-java)

mvn package 

Ich erhalte die folgende Fehlermeldung:

Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.3:shade (default) on project rest-api: Error creating shaded jar: error in opening zip file /Users/ldelaney/.m2/repository/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar 

Ich habe überprüft, das Glas ist da, genau dort, wo Maven hinsieht.

ich auch versucht, es weg geblasen wird, und läuft:

mvn clean 
mvn package 

Aber der Fehler gehen einfach nicht weg. Meine IDE zeigt keine Fehler an.

Auch hier ist meine Abhängigkeit in der POM:

<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.36</version> 
</dependency> 

Hier ist die gesamte POM-Datei.

<?xml version="1.0" encoding="UTF-8"?> 
<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-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.company.test</groupId> 
<artifactId>rest-api</artifactId> 
<version>1.0-SNAPSHOT</version> 

<properties> 
    <dropwizard.version>1.0.5</dropwizard.version> 
    <mongodriver.version>3.4.2</mongodriver.version> 
    <mysqlConnector.version>5.1.36</mysqlConnector.version> 
    <log4j.version>1.2.17</log4j.version> 
</properties> 

<dependencies> 

    <!-- Drop Wizard --> 
    <dependency> 
     <groupId>io.dropwizard</groupId> 
     <artifactId>dropwizard-core</artifactId> 
     <version>${dropwizard.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>io.dropwizard</groupId> 
     <artifactId>dropwizard-auth</artifactId> 
     <version>${dropwizard.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>io.dropwizard</groupId> 
     <artifactId>dropwizard-db</artifactId> 
     <version>${dropwizard.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>io.dropwizard</groupId> 
     <artifactId>dropwizard-hibernate</artifactId> 
     <version>${dropwizard.version}</version> 
    </dependency> 

    <!-- MYSQL and Hibernate --> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>${mysqlConnector.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <version>1.4.193</version> 
    </dependency> 

    <!-- Log4j dependencies --> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>${log4j.version}</version> 
    </dependency> 

</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <createDependencyReducedPom>true</createDependencyReducedPom> 
       <filters> 
        <filter> 
         <artifact>*:*</artifact> 
         <excludes> 
          <exclude>META-INF/*.SF</exclude> 
          <exclude>META-INF/*.DSA</exclude> 
          <exclude>META-INF/*.RSA</exclude> 
         </excludes> 
        </filter> 
       </filters> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
        <configuration> 
         <transformers> 
          <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> 
          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
           <mainClass>application.ServerApplication</mainClass> 
          </transformer> 
         </transformers> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Wer irgendwelche Ideen?

+0

Angenommene während der Bearbeitung, dass die Befehle waren 'mvn' nicht' maven'. – nullpointer

+0

Bitte teilen Sie die Pom einschließlich des Schatten-Plugins, die Sie verwenden. – nullpointer

+0

Hey @nullpointer, ich habe das POM hinzugefügt, ich sollte dir auch sagen, dass, da ich alles in meinem maven repo entfernt habe, ALLES, was ich versuche zu benutzen, wird mir diesen Fehler von Maven geben, jede einzelne Abhängigkeit. Ich weiß nicht, was passiert ist, änderte ich nichts in meiner Umgebung, eine Minute konnte ich MVN-Paket laufen, und die nächste, konnte ich nicht. – MickeyThreeSheds

Antwort

1

Von der OP-Antwort sieht es aus wie in .m2/repository/mysql-connector-java/5.1.36 gibt es nur pom.xml-Datei. Führen Sie folgende Schritte aus:

  1. , wenn Sie Nexus- oder Artefakt-Repositorys in Ihrer Organisation verwenden. Löschen Sie die mysql-Connector-Koordinaten und die entsprechende pom.xml-Datei. Stellen Sie sicher, dass Ihre Firewall so konfiguriert ist, dass Sie die Datei von here herunterladen können. Das zentrale Repository ist standardmäßig mit der maven-Installation konfiguriert.
  2. Upgrade-3 Maven, wenn Sie auf Maven 2.
sind

ich Ihre pom nur kopiert und ich konnte erfolgreich aufzubauen. Ich habe auch kein Artefakt oder Nexus. Können Sie versuchen,

  1. Gehen Sie zu Ihrer Maven-Installation und geben Sie einen anderen Repository-Speicherort. Sie sollten zu /conf/settings.xml gehen und das Kommentarzeichen entfernen und <localRepository>/path/to/local/repo</localRepository> in einen Pfad ändern. Stellen Sie sicher, dass Sie chmod +777 für diesen Pfad verwenden. Wenn das Problem weiterhin besteht, laden Sie mysql-connector-java-5.1.36.jar manuell herunter und legen Sie es dort ab. Sehen Sie, ob es funktioniert.
  2. Wenn 2 nicht funktioniert, versuchen Sie erneut Schritt 2, aber führen Sie mvn mit -o Flag aus. Dies ist Offline-Flag und Maven wird keine Abhängigkeit herunterladen.

Wenn es nicht funktioniert, können Sie zeigen Ihre Maven Ausgang mit -X-Flag,

mvn -U -X -e install 
+0

Hey! :) Wir verwenden nicht Artefakt oder Nexus, ich bin in der Lage, von der zentralen herunterladen (Ich versuchte ein wget auf dem Glas zu überprüfen) und ich bin auf Maven 3. Gibt es noch etwas, das dies verursachen kann ? – MickeyThreeSheds

+0

Ich habe die Antwort geändert! – GauravJ

+0

Das hat funktioniert! :) Vielen Dank! – MickeyThreeSheds