java - 使用 maven 在 zip 中损坏 JARS
问题描述
我有 maven 项目,我想打包在一个 zip 文件中,包括 jar 二进制文件(在文件夹 /jars 中)。打包后,我解压缩并提取了 jar 文件,但是当我调用它时出现以下错误:
PS C:\Users\kenochrome\Downloads> jar xf service-0.1.jar
java.util.zip.ZipException: invalid literal/length code
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:139)
at java.util.zip.ZipInputStream.read(ZipInputStream.java:142)
at sun.tools.jar.Main.extractFile(Main.java:715)
at sun.tools.jar.Main.extract(Main.java:678)
at sun.tools.jar.Main.run(Main.java:191)
at sun.tools.jar.Main.main(Main.java:904)
下面是父子pom的片段。
父 POM
<build>
<finalName>release_1.0</finalName>
<resources>
<resource>
<directory>${basedir}/hello/world/00006/jars</directory>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptor>assembly/bin.xml</descriptor>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
子 POM
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>scala-compile</id>
<phase>process-resources</phase>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>scala-test-compile</id>
<phase>process-test-resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<finalName>service-${project.version}</finalName>
<outputDirectory>../../jars</outputDirectory>
<resources>
<resource>
<directory>jars</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
</dependencies>
</project>
如果信息不充分或者这个问题的格式不正确,我很抱歉。
非常感谢您阅读这篇文章,并提前非常感谢。
解决方案
正在浏览另一个论坛,发现我遇到的问题是<lineEnding>unix</lineEnding>
在我的描述符程序集 xml 中使用该元素。
推荐阅读
- .net - 窗口对象在关闭后没有释放,即使在 GC Collect 和 WaitForPendingFinalizers 之后?
- javascript - Javascript如何从当月获得整整两年?
- javascript - 扩展 SVG.Element 的更好方法,让 vscode 知道已进行更改并提供文档
- javascript - 在迭代两个时对数组进行排序?
- excel - VBA 循环复制、粘贴和执行其他 VBA
- python - 优化代码:仅返回 python 列表的最高版本文件名
- google-cloud-platform - GCP Cloud SDK 在 MAC 中安装失败
- python - wxPython 网格小部件底部和网格边框内的不需要的空间
- angular - 在 Angular 中使用 FontAwesome Pro
- laravel - Laravel show 方法输出空对象