【问题标题】:I get "not a valid key: gen-idea", with a clean install of sbt 0.13+ how to fix it?我得到“不是有效的密钥:gen-idea”,干净安装了 sbt 0.13+ 如何修复它?
【发布时间】:2013-10-12 08:36:42
【问题描述】:

我正在尝试让gen-idea 工作。这就是我安装sbtidea 插件的方式:

http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html

我正在遵循手动安装说明:

$ mkdir -p ~/bin
$ cd ~/bin
$ wget http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.0/sbt-launch.jar
$ vi sbt

sbt 文件中我放了这个内容:

SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"

然后,保存后:

$ chmod u+x ~/bin/sbt

./sbt

$ ./sbt
Getting org.scala-sbt sbt 0.13.0 ...
:: retrieving :: org.scala-sbt#boot-app
    confs: [default]

.
.
.

$ ./sbt --version
sbt launcher version 0.13.0

然后我按照以下说明进行操作:

https://github.com/mpeltonen/sbt-idea

$ vi ~/.sbt/plugins/build.sbt

我输入这个内容:

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0-SNAPSHOT")

$ cd ~/tmp
$ ~/bin/sbt
~/tmp$ ~/bin/sbt
[warn] The global sbt directory is now versioned and is located at /home/me/.sbt/0.13.
[warn]   You are seeing this warning because there is global configuration in /home/me/.sbt but not in /home/me/.sbt/0.13.
[warn]   The global sbt directory may be changed via the sbt.global.base system property.
[info] Set current project to tmp (in build file:/home/me/tmp/)


> gen-idea
[error] Not a valid command: gen-idea
[error] Not a valid project ID: gen-idea
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: gen-idea
[error] gen-idea
[error]         ^

如何纠正“无效密钥:gen-idea”的问题?

【问题讨论】:

    标签: scala sbt sbt-idea


    【解决方案1】:

    您使用的是较新版本的 sbt,这一点非常清楚(您在输出中得到了这个):

    [warn] The global sbt directory is now versioned and is located at /home/me/.sbt/0.13.
    [warn]   You are seeing this warning because there is global configuration in /home/me/.sbt but not in /home/me/.sbt/0.13.
    [warn]   The global sbt directory may be changed via the sbt.global.base system property.
    [info] Set current project to tmp (in build file:/home/me/tmp/)
    

    解决办法是把sbt插件信息放到别的地方(或者设置sbt.global.base属性,如上所述):

    cat ~/.sbt/0.13/plugins/build.sbt 
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.1")
    

    【讨论】:

    • 谢谢,顺便问一下,如果我按照安装说明安装,为什么我会收到警告?拥有自定义默认文件夹 0.13 而不是默认文件夹是 0.13 的固有部分吗?所以 sbt 0.13 总是会发生?
    • @Tomer 安装说明有点过时,而且default branch is for 0.12。是的,0.13 的这个有点破坏性的变化。
    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 2013-09-03
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2014-11-14
    相关资源
    最近更新 更多