Shy*_*haa 7 java macos encoding maven java-8
在我的项目中运行 mvn install 时,我最终遇到了这个错误。虽然很多答案和资源都指出了/
vs 中的错误\
,但我想提一下,我没有本地更改,这个 repo 对我团队中的其他人来说很好用。以前对我来说也很好用。
在 Mac Os 10.15.7 和 JDK 1.8.0_291 上运行
请找到完整的堆栈跟踪:
java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
at java.util.Properties.loadConvert (Properties.java:672)
at java.util.Properties.load0 (Properties.java:455)
at java.util.Properties.load (Properties.java:408)
at org.eclipse.aether.internal.impl.TrackingFileManager.read (TrackingFileManager.java:56)
at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.read (DefaultUpdateCheckManager.java:511)
at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkMetadata (DefaultUpdateCheckManager.java:250)
at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolve (DefaultMetadataResolver.java:302)
at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolveMetadata (DefaultMetadataResolver.java:181)
at org.apache.maven.repository.internal.DefaultVersionRangeResolver.getVersions (DefaultVersionRangeResolver.java:198)
at org.apache.maven.repository.internal.DefaultVersionRangeResolver.resolveVersionRange (DefaultVersionRangeResolver.java:148)
at org.apache.maven.repository.internal.DefaultModelResolver.resolveModel (DefaultModelResolver.java:197)
at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally (DefaultModelBuilder.java:1070)
at org.apache.maven.model.building.DefaultModelBuilder.readParent (DefaultModelBuilder.java:846)
at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:337)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader.java:292)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor (DefaultArtifactDescriptorReader.java:171)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.resolveCachedArtifactDescriptor (DefaultDependencyCollector.java:538)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.getArtifactDescriptorResult (DefaultDependencyCollector.java:523)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:410)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies (DefaultDependencyCollector.java:254)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies (DefaultRepositorySystem.java:284)
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:169)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147)
at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:248)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:202)
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 jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:78)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:567)
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)
[ERROR]
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下方法:
小智 181
对我来说,这也是一个损坏的依赖项。
我不想经历设置调试器的过程,因此决定通过运行以下命令来查找目录\u0000
中包含的文件:~/.m2
grep -rnw ~/.m2 -e '\u0000'
Run Code Online (Sandbox Code Playgroud)
之后你会得到损坏的文件,删除这些文件,然后构建maven。
请注意,如果您的配置与默认值不同,则必须指定存储库文件夹。阅读您的~/.m2/settings.xml
并使用其中的值localRepository
。例如:
<settings>
<localRepository>/else/where</localRepository>
Run Code Online (Sandbox Code Playgroud)
使用:
grep -rnw /else/where -e '\u0000'
Run Code Online (Sandbox Code Playgroud)
如果您希望删除所有这些文件,请将文件名通过管道传输到xargs rm
:
grep -lrnw /else/where -e '\u0000' | xargs rm
Run Code Online (Sandbox Code Playgroud)
如果您的 .m2 存储库中有大量文件,您可以使用 find 命令来加快删除速度:
find ~/.m2 -name "resolver-status.properties" -exec grep -H -e '\u0000' {} \; | sed -r 's/:.*$//g' | xargs rm
Run Code Online (Sandbox Code Playgroud)
mic*_*cle 88
要查找哪个文件格式错误(不必删除整个 Maven 存储库),您可以像这样调试它:
java.util.Properties
(如错误堆栈跟踪中详细说明),然后在调试模式下运行任何 Maven 操作。TrackingFileManager.read(File)
在调用堆栈中查找并选择。mah*_*zer 32
我写了另一个问题的答案,这是类似的问题。下面的解决方案对我有用。
转到主目录中的 .m2 目录,并为每个依赖项删除“resolver-status.properties”。你可以使用
find ~/.m2/ -name resolver-status.properties -delete
Run Code Online (Sandbox Code Playgroud)
它将找到所有“resolver-status.properties”,并且 -delete 标志将删除它们。
现在重新加载 Maven 项目。
Raf*_*afi 23
事实上,大多数答案都是正确的,但有点不完整。显示消息,因为resolver-status.properties
文件已损坏并且它们包含 \u0000,如 micycle 的答案所示。有时它有助于删除损坏的文件并重新运行 Maven 命令。有时问题会消失,有时则不会。问题出现了为什么这些文件会损坏。好吧,maven 似乎在解析器中包含一个错误: https: //issues.apache.org/jira/browse/MRESOLVER-216
负责解决依赖关系的多个线程的同步似乎被破坏,并且在某些情况下,多个线程解决相同的工件,并且它们会中断,resolver-status.properties
如 micycle 所示。
如果尽管删除了损坏的文件,您的构建仍然无法成功完成,您可能需要将解析器线程限制为一个。为此,请使用 JVM 属性:
-Daether.metadataResolver.threads=1
Run Code Online (Sandbox Code Playgroud)
如果您使用 IntelliJ Idea 使用Settings->Build,Execution,Deployment->Maven->Runner
字段VMOptions
:
进行此更改后,请记住删除损坏的文件(或整个.m2
目录),因为一旦文件损坏,它们将无法修复。然后重新运行 Maven 构建。
Ale*_*aev 11
在我的情况下,问题是在第三方库,不正确的字符cters莫名其妙地被保存到?resolver-status.properties文件(不正确的行的例子:maven-metadata-nexus-releases.xml.lastUpda\u0000\u0000\....
)位于下~/.m2/repository/path-to-the-library
。刚刚删除了带有库的文件夹并重建了项目。
对于 mac ,您实际上不需要删除整个本地 maven 存储库,只需删除其中的resolver-status.properties文件:
find .m2/ -name resolver-status.properties -delete
起到魅力的作用。我什至添加了一个别名,因为我经常使用它,几周一次。
小智 6
转到 .m2 存储库,然后从那里运行以下命令 FINDSTR /S /M "u0" resolver-status.properties 这将列出所有损坏的解析器属性文件,删除它们,然后您就可以开始了!
以下是针对 Windows 用户的此问题的解决方案(没有看到针对 Windows 用户的更好解决方案)。
从 .m2/repository/ 文件夹打开命令提示符并运行以下 FINDSTR 命令:
FINDSTR /S /M "u0" resolver-status.properties
Run Code Online (Sandbox Code Playgroud)
此命令将过滤掉编码损坏的resolver-status.properties。
找到resolver-status.properties 文件列表后,只需删除它们,然后构建您的应用程序即可。
发现maven指向的java版本和我使用的java版本不同。看来maven总是指向最新版本的java。
首先通过运行检查这是否是问题mvn --version
如果 java 版本不匹配,请运行设置 JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home)
现在运行mvn --version
。Maven 应指向正确的 Java 版本。
下次运行时mvn install
,maven会自动选取JAVA_HOME中设置的版本
归档时间: |
|
查看次数: |
4429 次 |
最近记录: |