maven 创建阴影 jar 时出错:打开 zip 文件时出错
maven Error creating shaded jar: error in opening zip file
我正在尝试使用以下命令构建我的 dropwizard 项目:
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>
有人有什么想法吗?
从 OP 响应来看,.m2/repository/mysql-connector-java/5.1.36 中似乎只有 pom.xml 文件。请执行以下操作,
- 如果您在组织中使用 nexus 或 artifactory 存储库。删除 mysql-connector 坐标和相应的 pom.xml 文件。
- 确保您的防火墙已配置为可以从 here 下载文件。中央存储库默认配置有 maven 安装。
- 如果您使用的是 Maven 2,请升级到 Maven 3。
我刚刚复制了您的 pom,并且能够成功构建。我也没有人工制品或联系。你可以尝试关注,
- 转到您的 Maven 安装并指定不同的存储库位置。您应该转到 /conf/settings.xml 并取消注释并将
<localRepository>/path/to/local/repo</localRepository>
更改为路径。确保对该路径执行 chmod +777。
- 如果问题仍然存在,请手动下载
mysql-connector-java-5.1.36.jar
并将其放置在那里。看看能不能用。
- 如果 2 不起作用,则再次尝试步骤 2,但 运行 mvn 带有 -o 标志。这是离线标志,maven 不会下载依赖项。
如果它不起作用,你能用 -X 标志显示你的 maven 输出吗,
mvn -U -X -e install
遇到这个问题:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default) on project xxx: Error creating shaded jar: error in opening zip file /Users/username/.m2/repository/org/codehaus/groovy/groovy/2.2.0/groovy-2.2.0.jar -> [Help 1]
解决方案是 rm -rf /Users/username/.m2/repository/org/codehaus/groovy/groovy/2.2.0
然后它重新下载并再次开始工作。如果有帮助的话。
我正在尝试使用以下命令构建我的 dropwizard 项目:
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>
有人有什么想法吗?
从 OP 响应来看,.m2/repository/mysql-connector-java/5.1.36 中似乎只有 pom.xml 文件。请执行以下操作,
- 如果您在组织中使用 nexus 或 artifactory 存储库。删除 mysql-connector 坐标和相应的 pom.xml 文件。
- 确保您的防火墙已配置为可以从 here 下载文件。中央存储库默认配置有 maven 安装。
- 如果您使用的是 Maven 2,请升级到 Maven 3。
我刚刚复制了您的 pom,并且能够成功构建。我也没有人工制品或联系。你可以尝试关注,
- 转到您的 Maven 安装并指定不同的存储库位置。您应该转到 /conf/settings.xml 并取消注释并将
<localRepository>/path/to/local/repo</localRepository>
更改为路径。确保对该路径执行 chmod +777。 - 如果问题仍然存在,请手动下载
mysql-connector-java-5.1.36.jar
并将其放置在那里。看看能不能用。 - 如果 2 不起作用,则再次尝试步骤 2,但 运行 mvn 带有 -o 标志。这是离线标志,maven 不会下载依赖项。
如果它不起作用,你能用 -X 标志显示你的 maven 输出吗,
mvn -U -X -e install
遇到这个问题:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default) on project xxx: Error creating shaded jar: error in opening zip file /Users/username/.m2/repository/org/codehaus/groovy/groovy/2.2.0/groovy-2.2.0.jar -> [Help 1]
解决方案是 rm -rf /Users/username/.m2/repository/org/codehaus/groovy/groovy/2.2.0
然后它重新下载并再次开始工作。如果有帮助的话。