代码之家  ›  专栏  ›  技术社区  ›  dade

升级Scala、Play和SBT时出现问题

  •  1
  • dade  · 技术社区  · 8 年前

    我有一个使用Scala的Play应用程序。当前工作版本使用:

    游戏框架:2.5.18 斯卡拉:2.11.7 收缩压:0.13.11

    但当我将上面的版本升级到下面的版本时,一切都会中断:

    播放框架:2.6.17 斯卡拉:2.12.6 标准贯入试验:1.1.6

    我的意思是,当我在IDE(Intellij)中重新加载sbt时,它会失败,并出现以下错误:

    Error while importing sbt project:
    
    [info] Loading settings from idea.sbt ...
    [info] Loading global plugins from /Users/me/.sbt/1.0/plugins
    [info] Loading project definition from /project/project
    [info] Loading settings from plugins.sbt ...
    [info] Loading project definition from /project
    [warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
    [warn]  * org.webjars:webjars-locator-core:0.33 is selected over 0.32
    [warn]      +- com.typesafe:npm_2.12:1.2.1                        (depends on 0.32)
    [warn]      +- com.typesafe.sbt:sbt-web:1.4.3 (scalaVersion=2.12, sbtVersion=1.0) (depends on 0.32)
    [warn]  * org.codehaus.plexus:plexus-utils:3.0.17 is selected over {2.1, 1.5.5}
    [warn]      +- org.apache.maven:maven-settings:3.2.2              (depends on 3.0.17)
    [warn]      +- org.apache.maven:maven-repository-metadata:3.2.2   (depends on 3.0.17)
    [warn]      +- org.apache.maven:maven-aether-provider:3.2.2       (depends on 3.0.17)
    [warn]      +- org.apache.maven:maven-model:3.2.2                 (depends on 3.0.17)
    [warn]      +- org.apache.maven:maven-core:3.2.2                  (depends on 3.0.17)
    [warn]      +- org.apache.maven:maven-artifact:3.2.2              (depends on 3.0.17)
    [warn]      +- org.apache.maven:maven-settings-builder:3.2.2      (depends on 3.0.17)
    [warn]      +- org.apache.maven:maven-model-builder:3.2.2         (depends on 3.0.17)
    [warn]      +- org.sonatype.plexus:plexus-sec-dispatcher:1.3      (depends on 1.5.5)
    [warn]      +- org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5  (depends on 2.1)
    [warn]  * com.google.guava:guava:23.0 is selected over {10.0.1, 16.0, 20.0}
    [warn]      +- io.methvin:directory-watcher:0.3.2                 (depends on 23.0)
    [warn]      +- com.fasterxml.jackson.datatype:jackson-datatype-guava:2.8.8 (depends on 10.0.1)
    [warn]      +- org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5  (depends on 10.0.1)
    [warn]      +- com.spotify:docker-client:8.9.0                    (depends on 10.0.1)
    [warn] Run 'evicted' to see detailed eviction warnings
    [error] /project/Grunt.scala:14:9: Java class java.lang.Process is not a value
    [error]         Process("grunt build", base).run
    [error]         ^
    [error] /project/Grunt.scala:18:29: Java class java.lang.Process is not a value
    [error]         watchProcess = Some(Process("grunt watch", base).run)
    [error]                             ^
    [error] two errors found
    [error] (Compile / compileIncremental) Compilation failed
    Invalid response.
    

    如果我只是跑 sbt compile 在终端中,我得到以下错误:

    [info] Loading project definition from /project
    [error] /project/Grunt.scala:14:9: Java class java.lang.Process is not a value
    [error]         Process("grunt build", base).run
    [error]         ^
    [error] project/Grunt.scala:18:29: Java class java.lang.Process is not a value
    [error]         watchProcess = Some(Process("grunt watch", base).run)
    [error]                             ^
    [error] two errors found
    [error] (Compile / compileIncremental) Compilation failed
    Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? 
    

    我真的完全不知道会出什么问题以及如何解决。版本之间是否存在不兼容问题?是因为有些东西被弃用了吗?我真的不知道…到处搜索也没用。

    任何关于如何解决这个问题的建议,或者什么可能会出错的都将非常感谢!

    更新 在查看编译错误时,我最初以为已经导入了Java进程,但文件中的导入部分给出了编译错误:

    import java.net.InetSocketAddress
    
    import play.sbt.PlayRunHook
    import sbt._
    

    应该指出的是,所有这些以前都是完美的。唯一的改变是升级Scala/Play/SBT

    1 回复  |  直到 8 年前
        1
  •  6
  •   Luca T.    8 年前

    你输入的是错误的 Process .

    您已导入 java.lang.Process ,当你需要的时候 scala.sys.process.Process

    如所述 sbt 1.0.0 release notes

    删除sbt.Process和sbt.ProcessExtra。改用scala.sys.process