2017-02-09 57 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