IntelliJ IDEA社区版sbt shell执行g8模板命令报错:Unknown argument 'idea-shell'
解决IntelliJ IDEA sbt Shell中执行
new命令的Unknown argument 'idea-shell'错误 我之前也碰到过一模一样的问题,本质原因很明确:IntelliJ IDEA的sbt Shell会自动给giter8(也就是sbt new命令依赖的模板生成工具)传递一个idea-shell参数,但你当前使用的g8 0.7.2版本太老旧,完全不识别这个参数,所以直接触发了报错。
下面给你几个实用的解决办法:
方法1:给命令加--屏蔽额外参数
最简单的临时解决方式,就是在执行new命令时,在模板地址的末尾加上--,这样sbt会自动忽略后续IDEA传递的额外参数,不会把idea-shell传给g8。修改后的命令如下:
new https://github.com/sbt/scala-seed.g8 --
针对Play框架模板的话,改成:
new PlayFramework/play-scala-seed.g8 --
方法2:升级giter8版本
g8在0.13.0及以后的版本中已经适配了IDEA的这个参数,你可以升级项目里的giter8依赖。打开项目根目录下的project/plugins.sbt文件,添加或更新giter8 resolver的版本:
addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-resolver" % "0.13.1")
保存后回到IDEA的sbt Shell,执行reload重新加载项目,再运行new命令就可以正常执行了。
方法3:换系统终端执行命令
如果不想修改任何配置,直接打开系统自带的终端(Windows用PowerShell、Mac/Linux用Terminal),进入你的项目目录,执行sbt进入sbt环境后再运行new命令就行——这里不会有IDEA额外传递的参数,自然不会触发报错。
内容的提问来源于stack exchange,提问作者AA657
相关产品推荐
相关产品推荐

