在IDEA下maven打包报错invalid entry size (expected 4 but got 3 bytes)

该项目在idea中直接运行是正常的,在eclipse下用maven打包也正常,但就是在idea中打包时会抛出异常,信息如下:

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.14.RELEASE:repackage (default) on project esgov-saas12345-saas12345web: invalid entry size (expected 4 but got 3 bytes) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

为获取详细的报错信息,按照上面的提示,添加参数 -e -X重新执行mvn package
在这里插入图片描述
详细错误信息如下:

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.14.RELEASE:repackage (default) on project esgov-saas12345-saas12345web: invalid entry size (expected 4 but got 3 bytes) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.14.RELEASE:repackage (default) on project esgov-saas12345-saas12345web: invalid entry size (expected 4 but got 3 bytes)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: org.apache.maven.plugin.MojoExecutionException: invalid entry size (expected 4 but got 3 bytes)
    at org.springframework.boot.maven.RepackageMojo.repackage (RepackageMojo.java:220)
    at org.springframework.boot.maven.RepackageMojo.execute (RepackageMojo.java:204)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: java.util.zip.ZipException: invalid entry size (expected 4 but got 3 bytes)
    at java.util.zip.ZipOutputStream.closeEntry (ZipOutputStream.java:262)
    at org.springframework.boot.loader.tools.JarWriter.writeEntry (JarWriter.java:268)
    at org.springframework.boot.loader.tools.JarWriter.writeEntries (JarWriter.java:146)
    at org.springframework.boot.loader.tools.JarWriter.writeEntries (JarWriter.java:126)
    at org.springframework.boot.loader.tools.Repackager.repackage (Repackager.java:285)
    at org.springframework.boot.loader.tools.Repackager.repackage (Repackager.java:262)
    at org.springframework.boot.loader.tools.Repackager.repackage (Repackager.java:194)
    at org.springframework.boot.maven.RepackageMojo.repackage (RepackageMojo.java:217)
    at org.springframework.boot.maven.RepackageMojo.execute (RepackageMojo.java:204)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

可以看到引起该错误的地方是

at java.util.zip.ZipOutputStream.closeEntry (ZipOutputStream.java:262)

点击进入ZipOutputStream.java,在抛出异常的地方打个断点
在这里插入图片描述
由于该异常只在maven打包时才会抛出,所以要用debug模式运行mvn package才能进入到该断点。idea下如果以debug模式运行mvn package可以参考我的这篇文章
https://blog.csdn.net/weixin_52690856/article/details/109815882

进入断点:
在这里插入图片描述
可以看到,是在读取resources/gz12345/css/_variables.css这个文件时抛出的异常,找到这个css文件,发现里面只有一个null,删除后再重新打包就不会抛出异常了。
在这里插入图片描述
网上还有人说了另外一种情况会导致这个问题出现,就是一些文件里面有空行,实际上这些空行里面是有一些特殊字符的,删除这些空行就能解决这个问题。

添加maven依赖报错可能有多种原因,以下是一些常见的解决方案: 1. 检查maven仓库配置是否正确。确保maven的配置路径和本地仓库的配置正确,包括settings.xml和仓库地址等配置项。\[1\] 2. 清理maven缓存。使用clean命令清理maven缓存,并在刷新后重新执行操作。同时,清理IDEA的缓存并重启项目也可能有帮助。\[2\] 3. 解决jar包冲突问题。可以使用插件来查看是否存在重复的依赖,并根据需要下载正确的依赖。如果下载的依赖有问题,可以尝试删除本地仓库的缓存文件并重新下载。\[2\] 4. 检查依赖的版本兼容性。有时候,依赖的版本可能与使用的JDK版本或项目的maven版本不兼容。尝试切换依赖的版本或确保maven版本与项目版本相同。\[2\] 如果以上方法都没有解决问题,可以尝试以下操作: 1. 检查pom文件中的报错。如果pom文件中有报错,可以尝试执行第3步操作。\[3\] 2. 检查idea右侧的MavenProject插件报错。如果插件报错,同样可以尝试执行第3步操作。\[3\] 3. 找到对应的pom文件,将其剪切并重新导入maven,然后再将剪切的内容粘贴回原位置。这样可以重新导入依赖并解决问题。\[3\] 希望以上解决方案能够帮助您解决添加maven依赖报错的问题。 #### 引用[.reference_title] - *1* *3* [IDEA-maven报错问题的解决方案(四步解决-详细版本)](https://blog.csdn.net/weixin_45536587/article/details/103968145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [IDEAmaven依赖报错解决方案](https://blog.csdn.net/qq_42074921/article/details/85322513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值