51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Maven报错failed with MalformedInputException: Input length = 1 -> [Help 1]

2024-03-26-uywmqlyy.png

问题 {#问题}

最近电脑重装系统了,开发环境都重装了,打包项目时发现一直打包失败

  • 电脑环境如下
Microsoft Windows [版本 10.0.19045.4170]
(c) Microsoft Corporation。保留所有权利。
`C:\Users\wxy>vfox ls
All installed sdk versions
├─┬java
│ ├──v8
│ └──v21
└─┬maven
└──v3.9.6
`

  • 项目环境

springboot 2.5.7

maven-resources-plugin:3.3.1

原因 {#原因}

Maven 在处理resource目录下资源时遇到了一个编码问题,导致过滤操作失败

具体来说,错误信息中提到了一个 MalformedInputException,这表示输入的数据有问题,可能是因为文件的编码与 Maven 预期的编码不匹配。

如果是文本文件或可编辑文件 可尝试修正文件编码,此处 .cer文件是个证书 很显然无法直接修改

解决方法 {#解决方法}

方法一 {#方法一}

使用 maven-resources-plugin插件来配置 使maven 忽略这些后缀文件的转码

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
     <configuration>
         <nonFilteredFileExtensions>
           <nonFilteredFileExtension>cer</nonFilteredFileExtension>
           <nonFilteredFileExtension>properties</nonFilteredFileExtension>
         </nonFilteredFileExtensions>
     </configuration>
</plugin>

配置好之后先 reload maven再进行 mvn package 打包即可

方法二 {#方法二}

maven-resources-plugin 需要修改到版本 3.1.0 即可

<!--     https://github.com/spring-projects/spring-boot/issues/24346       -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>

方法三 {#方法三}

降低maven版本至3.9以下即可3.8.x

相关参考 {#相关参考}

maven 3.9.1 failing to build project with error:

failed with MalformedInputException: Input length = 1 when building java application with maven 3.9.0

SpringBoot2.4.0 MavenFilteringException: Input length = 1

https://maven.apache.org/plugins/maven-resources-plugin/examples/binaries-filtering.html

赞(0)
未经允许不得转载:工具盒子 » Maven报错failed with MalformedInputException: Input length = 1 -> [Help 1]