解析sbt项目时出现java.nio.file.InvalidPathException异常。

问题描述 投票:1回答:1

Scala的忠实粉丝,但SBT一直让我在没有牙齿的地方牙疼.通常我管理,但这个让我有些困惑.谁能帮我解决以下问题。

TLDR

在重新导入我的 sbt-project 时,我遇到了以下错误。

[error] (update) java.nio.file.InvalidPathException: Illegal char < > at index 90: C:\Users\\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucumbe r\cucumber-junit\5.7.0\cucumber-junit-5.7.0.pom.lock

似乎是导入时在解析黄瓜依赖关系时遇到了一些损坏的路径,包括一个tab字符。奇怪的是,这是一个 重新进口;之前导入得很好。另外,实际路径 C:\Users\\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucumbe r\cucumber-junit\5.7.0\ 无法找到,无论是通过资源管理器还是shell。

该错误首先发生在将项目导入Intellij时,但通过shell使用SBT也产生了同样的结果。

详情如下。

有谁知道如何。- 解决这个问题?- 防止它再次发生?

可以找到项目 此处

完整的SBT日志。

[info] Loading global plugins from C:\Users\-username-\.sbt\1.0\plugins  
[info] Loading settings for project sandbox-build from plugins.sbt ...  
[info] Loading project definition from C:\coding\modules\scala\sandbox\project  
[info] Loading settings for project sandbox from build.sbt ...  
[info] Set current project to sandbox (in build file:/C:/coding/modules/scala/sandbox/)  
[error] java.nio.file.InvalidPathException: Illegal char <    > at index 90: C:\Users\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucumbe  r\cucumber-junit\6.0.0-RC2\cucumber-junit-6.0.0-RC2.pom.lock  
[error]   at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)  
[error]   at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)  
[error]   at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)  
[error]   at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)  
[error]   at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229)  
[error]   at java.base/java.io.File.toPath(File.java:2311)  
[error]   at lmcoursier.internal.shaded.coursier.cache.CacheLocks$.withLockOr(CacheLocks.scala:35)  
[error]   at lmcoursier.internal.shaded.coursier.cache.FileCache.$anonfun$download$32(FileCache.scala:508)  
[error]   at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)  
[error]   at scala.util.Success.$anonfun$map$1(Try.scala:255)  
[error]   at scala.util.Success.map(Try.scala:213)  
[error]   at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)  
[error]   at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)  
[error]   at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)  
[error]   at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)  
[error]   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)  
[error]   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)  
[error]   at java.base/java.lang.Thread.run(Thread.java:832)  
[error] (update) java.nio.file.InvalidPathException: Illegal char <   > at index 90: C:\Users\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucumbe  r\cucumber-junit\6.0.0-RC2\cucumber-junit-6.0.0-RC2.pom.lock  
[error] Total time: 1 s, completed 4 jun. 2020 13:57:57```  

已经尝试

  • 清除Coursier缓存的方法是删除 C:\Users\-username-\AppData\Local\Coursier\cache\ 目录
  • 删除项目中的 ./target./project/target 目录
  • 将违规的黄瓜依赖关系更新为 6.0.0-RC2

好像锁文件还存在某个地方,SBT不能自己重新下载?

maven windows-10 sbt cucumber coursier
1个回答
1
投票

由于异常报告有6个空格或一个标签多。正是那些在你的build.sbt文件的第52行。"io. cucumbet r". 祝你编程愉快!

© www.soinside.com 2019 - 2024. All rights reserved.