java.nio.file.InvalidPathException 在解析 sbt 项目时
java.nio.file.InvalidPathException while resolving sbt project
Scala 的忠实粉丝,但 SBT 总是让我在没有牙齿的地方牙疼。
通常我都能做到,但这个让我有些困惑。
谁能帮我解决以下问题:
TL/DR
在重新导入我的 sbt 项目时,我遇到了以下错误。
[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.7.0\cucumber-junit-5.7.0.pom.lock
似乎导入在解决黄瓜依赖性时遇到了一些损坏的路径,包括制表符。奇怪的是,这是 重新导入;它以前进口的很好。此外,无法通过资源管理器或 shell.
找到实际路径 C:\Users\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucumbe r\cucumber-junit.7.0\
错误首先发生在将项目导入 Intellij 时,但通过 shell 使用 SBT 产生了相同的结果。
详情如下。
有谁知道如何:
- 解决这个问题?
- 防止它再次发生?
可以找到项目here
完整的 SBT 日志:
[info] Loading global plugins from C:\Users\-username-\.sbt.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.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(FileCache.scala:508)
[error] at scala.concurrent.Future$.$anonfun$apply(Future.scala:659)
[error] at scala.util.Success.$anonfun$map(Try.scala:255)
[error] at scala.util.Success.map(Try.scala:213)
[error] at scala.concurrent.Future.$anonfun$map(Future.scala:292)
[error] at scala.concurrent.impl.Promise.liftedTree1(Promise.scala:33)
[error] at scala.concurrent.impl.Promise.$anonfun$transform(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.0.0-RC2\cucumber-junit-6.0.0-RC2.pom.lock
[error] Total time: 1 s, completed 4 jun. 2020 13:57:57```
已经尝试过
- 通过删除
C:\Users\-username-\AppData\Local\Coursier\cache\
目录清除 Coursier 缓存
- 通过删除
./target
和 ./project/target
目录来清除项目
- 将有问题的 Cucumber 依赖项更新为
6.0.0-RC2
好像锁文件还在某处,SBT不能自己重新下载?
作为异常报告,有 6 个空格或制表符。正是您的 build.sbt 文件中的第 52 行:"io.cucumbe\t r"。编程愉快!
Scala 的忠实粉丝,但 SBT 总是让我在没有牙齿的地方牙疼。 通常我都能做到,但这个让我有些困惑。 谁能帮我解决以下问题:
TL/DR
在重新导入我的 sbt 项目时,我遇到了以下错误。
[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.7.0\cucumber-junit-5.7.0.pom.lock
似乎导入在解决黄瓜依赖性时遇到了一些损坏的路径,包括制表符。奇怪的是,这是 重新导入;它以前进口的很好。此外,无法通过资源管理器或 shell.
找到实际路径C:\Users\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucumbe r\cucumber-junit.7.0\
错误首先发生在将项目导入 Intellij 时,但通过 shell 使用 SBT 产生了相同的结果。
详情如下。
有谁知道如何:
- 解决这个问题?
- 防止它再次发生?
可以找到项目here
完整的 SBT 日志:
[info] Loading global plugins from C:\Users\-username-\.sbt.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.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(FileCache.scala:508) [error] at scala.concurrent.Future$.$anonfun$apply(Future.scala:659) [error] at scala.util.Success.$anonfun$map(Try.scala:255) [error] at scala.util.Success.map(Try.scala:213) [error] at scala.concurrent.Future.$anonfun$map(Future.scala:292) [error] at scala.concurrent.impl.Promise.liftedTree1(Promise.scala:33) [error] at scala.concurrent.impl.Promise.$anonfun$transform(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.0.0-RC2\cucumber-junit-6.0.0-RC2.pom.lock [error] Total time: 1 s, completed 4 jun. 2020 13:57:57```
已经尝试过
- 通过删除
C:\Users\-username-\AppData\Local\Coursier\cache\
目录清除 Coursier 缓存 - 通过删除
./target
和./project/target
目录来清除项目 - 将有问题的 Cucumber 依赖项更新为
6.0.0-RC2
好像锁文件还在某处,SBT不能自己重新下载?
作为异常报告,有 6 个空格或制表符。正是您的 build.sbt 文件中的第 52 行:"io.cucumbe\t r"。编程愉快!