[英]Ant: Malformed \uxxxx encoding in propertyfile task
我用我写的 Ant 脚本得到了下面的错误。
我已经做了一些谷歌搜索,发现问题在于包含 \u 的字符串,由于目录分隔符,它发生在 Windows 下。 我将所有这些更改为 / 但错误仍然存在。
我的脚本中肯定没有剩余的 \u 字符串。
java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
执行propertyfile任务时出现错误,所以我检查了我要更改的文件。 另一方面,它包含多个 \u 字符串。 该文件与 ant 无关,它是一个 borland 项目文件 (xml),其中包含一行 [someParameter]=[someValue]。
我只想将 [someValue] 增加 1。
所以我的问题是:
我要更改的属性文件是否会导致提到的错误
如果答案是“是”,
我能做什么,除了用正则表达式任务来做(比如找到线,propertyregex-ing 值,math+1 值和正则表达式替换值)
我知道这个问题是不久前被问到的,但在我发现的另一个网站上( http://www.coderanch.com/t/107014/tools/Malformed-uxxxx-encoding-error )我偶然发现了这个问题没有答案发现由于解析的工作原理,当您应该使用“/”而不是“\”作为文件目标时,可能会发生这种情况/希望这会有所帮助。
在我的情况下,它是 maven 抛出这个错误。
[INFO] Building some-prj 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.508 s
[INFO] Finished at: 2021-08-31T08:00:30-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Malformed \uxxxx encoding.
[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.
我不得不重命名 .m2 目录
mv ~/.m2 ~/m2_20210831
并重新启动 Maven 构建
mvn clean package
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 48.927 s
[INFO] Finished at: 2021-08-31T08:04:56-07:00
[INFO] ------------------------------------------------------------------------
使用双反斜杠(“\\”),如“abc\\user”,相当于“abc\user”,可以解决问题。
转到主目录中的 .m2 目录,并为每个依赖项删除“resolver-status.properties”。 您可以使用
find ~/.m2/ -name resolver-status.properties -delete
它将找到所有“resolver-status.properties”,并且 -delete 标志将删除它们。
现在重新加载 Maven 项目。
首先,您应该尝试使用调试标志运行 ant 脚本以确定哪个文件在 Eclipse 中导致问题,您可以通过以下方式执行此操作
Run > External Tools > External Tools Configurations... > Main
并将“-d”(不带引号)添加到“参数”
然后尝试在 Eclipse 中编辑文件,因为某些编辑器(例如“写字板”)可能会弄乱文件
在C:\Users\\{user-name}\\.m2
中重命名我的存储库文件夹并再次运行该命令对我有用。
我发现了一个导致这个恼人错误的具体依赖项。 我有
<!-- https://mvnrepository.com/artifact/org.ops4j.pax.exam/pax-exam-junit4 -->
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>4.13.5</version>
<scope>test</scope>
</dependency>
将其替换为:
<!-- https://mvnrepository.com/artifact/org.ops4j.pax.exam/pax-exam-junit4 -->
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>4.1.0.redhat-1</version>
<scope>test</scope>
</dependency>
错误消失了。
我发现清除我的本地 Maven 缓存(“.m2”内的“存储库”文件夹)为我解决了这个问题。
这里有一些建议可以重命名/删除整个 .m2 文件夹,但这会删除您的 settings.xml 文件。
删除所有“resolver-status.properties”文件并重新构建项目
如果此问题与 maven 有关,那么我们只需删除“.m2”目录/路径中的“存储库文件夹”,然后再次触发项目构建。 之后它应该会成功构建。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.