2017-02-09 85 views
0

我嘗試使用下面的命令來建立我dropwizard項目:Maven構建:錯誤解壓縮JAR(使用mysql-connector-java的)

mvn package 

我收到以下錯誤:

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 

我已經檢查過,jar在那裏,正好在maven正在查找的地方。

我也試着吹它拿走,並運行:

mvn clean 
mvn package 

但錯誤就不會消失。我的IDE沒有顯示任何錯誤。

而且,這裏是我的POM依賴關係:

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

這裏是整個POM文件。

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

人有什麼想法?

+0

而編輯的命令是'mvn'不'maven'承擔。 – nullpointer

+0

請分享您使用的陰影插件。 – nullpointer

+0

嘿@nullpointer,我添加了POM,我也應該告訴你,因爲我刪除了我的maven回購中的所有內容,所以我嘗試使用的每件事都會給我這個來自maven的錯誤,每一個依賴。 我不知道發生了什麼,我沒有改變我的環境中的任何事情,一分鐘我就能運行mvn軟件包,而下一次,我不能。 – MickeyThreeSheds

回答

1

從OP響應中,它看起來像.m2/repository/mysql-connector-java/5.1.36中只有pom.xml文件。請執行以下操作:

  1. 如果您在組織中使用nexus或ar​​tifactory存儲庫。刪除mysql連接器座標和相應的pom.xml文件。
  2. 確保您的防火牆已配置爲可以從here下載文件。中央庫默認配置爲maven安裝。
  3. 升級到Maven 3,如果你是行家2.

我只是複製你的POM,我能夠成功建立。我也沒有神器或聯繫。你可以試試看,

  1. 轉到你的maven安裝並指定一個不同的存儲庫位置。您應該轉到/conf/settings.xml並取消註釋並將<localRepository>/path/to/local/repo</localRepository>更改爲路徑。確保你對該路徑執行chmod +777。
  2. 如果問題仍然存在,請手動下載mysql-connector-java-5.1.36.jar並將其放置在那裏。看看它是否有效。
  3. 如果2不起作用,則再次嘗試第2步,但用-o標誌運行mvn。這是離線標誌,maven不會下載依賴關係。

如果它不工作,則可以顯示與-X標誌Maven的輸出,

mvn -U -X -e install 
+0

嘿! :) 我們沒有使用artifactory或nexus,我可以從中央下載(我試過一個wget在那裏的jar來驗證),我在maven 3上。 是否還有其他可能導致此問題的內容? – MickeyThreeSheds

+0

我修改了答案! – GauravJ

+0

這工作! :) 謝謝! – MickeyThreeSheds