Maven 解析sbt项目时发生java.nio.file.InvalidPathException

Maven 解析sbt项目时发生java.nio.file.InvalidPathException,maven,windows-10,sbt,cucumber,coursier,Maven,Windows 10,Sbt,Cucumber,Coursier,Scala的超级粉丝,但SBT一直让我在没有牙齿的地方牙痛。 通常我能做到,但这一点让我有些困惑。 有人能帮我做以下几件事吗 TL/DR 重新导入sbt项目时,我遇到以下错误 [错误](更新)java.nio.file.InvalidPathException:索引90处的非法字符C:\Users\\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucucumber\cumber-junit\

Scala的超级粉丝,但SBT一直让我在没有牙齿的地方牙痛。 通常我能做到,但这一点让我有些困惑。 有人能帮我做以下几件事吗

TL/DR 重新导入sbt项目时,我遇到以下错误

[错误](更新)java.nio.file.InvalidPathException:索引90处的非法字符<>C:\Users\\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucucumber\cumber-junit\5.7.0\cumber-junit-5.7.0.pom.lock

在解析cucumber依赖关系时,导入似乎遇到了一些损坏的路径,包括一个制表符。奇怪的是,这是一次重新进口;以前天气很好。此外,实际路径
C:\Users\\-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucucumber\cucumber junit\5.7.0\
无法通过浏览器或shell找到

在将项目导入Intellij时首次出现错误,但通过shell使用SBT会产生相同的错误

详情如下

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

项目可以找到

完整SBT日志:
[info]从C:\Users \-username-\.sbt\1.0\plugins加载全局插件
[信息]正在从plugins.sbt加载项目沙盒生成的设置。。。
[信息]正在从C:\coding\modules\scala\sandbox\project加载项目定义
[信息]正在从build.sbt加载项目沙盒的设置。。。
[信息]将当前项目设置为沙盒(在生成文件中:/C:/coding/modules/scala/sandbox/)
[错误]java.nio.file.InvalidPathException:索引90处的非法字符<>C:\Users \-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucucumber\cucumber junit\6.0.0-RC2\cumber-junit-6.0.0-RC2.pom.lock
java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)中的[错误]
[错误]位于java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
[错误]位于java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)中的[error]
[错误]位于java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229)
[错误]位于java.base/java.io.File.toPath(File.java:2311)
[错误]位于lmcoursier.internal.shaded.coursier.cache.CacheLocks$.withLockOr(CacheLocks.scala:35)
[错误]位于lmcoursier.internal.shade.coursier.cache.FileCache.$anonfun$下载$32(FileCache.scala:508)
[错误]位于scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)
[错误]位于scala.util.Success.$anonfun$map$1(Try.scala:255)
[错误]位于scala.util.Success.map(Try.scala:213)
[错误]位于scala.concurrent.Future.$anonfun$map$1(Future.scala:292)
scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)处的[error]
scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)处的[error]
scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)处的[error]
[错误]位于java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
[错误]位于java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
[错误]位于java.base/java.lang.Thread.run(Thread.java:832)
[错误](更新)java.nio.file.InvalidPathException:索引90处的非法字符<>C:\Users \-username-\AppData\Local\Coursier\cache\v1\https\repo1.maven.org\maven2\io\cucucumber\cumber-junit\6.0.0-RC2\cumber-junit-6.0.0-RC2.pom.lock
[错误]总时间:1秒,已完成2020年6月4日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”。快乐编程

哇,我真是个白痴。那个档案我一定看了十几遍了。非常感谢您抽出时间。
[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```