能否使用本地目录作为模板运行sbt new而非GitHub仓库?
用本地解压的g8模板替代Git仓库运行
sbt new的解决方案 当然可以!你只需要用sbt new的本地模板语法就行,之前失败大概率是没用到正确的命令格式。我来给你一步步说清楚:
核心命令与关键要求
g8模板有个约定:必须让模板目录以.g8结尾,sbt才能识别它是合法的模板。所以你需要先把解压后的play-scala-seed目录重命名为play-scala-seed.g8,然后用file://协议指定本地路径来运行命令。
针对你的Windows环境,正确的命令应该是:
sbt new file:///C:/workspace/play-scala-seed.g8
注意:Windows下要写三个斜杠的file:///,如果是Linux或macOS的话用两个斜杠file://就行。
完整操作步骤
- 找到你解压后的
C:\workspace\play-scala-seed目录,把它重命名为play-scala-seed.g8 - 打开命令行,切换到你想要创建新项目的目标目录(别在模板目录里执行命令)
- 输入上面的命令,回车后就会和使用Git仓库时一样,提示你输入项目名称等信息,跟着引导完成新项目生成就好
为什么之前的尝试没成功?
默认的sbt new是针对远程Git仓库设计的,直接丢普通本地目录的话,sbt根本不知道这是个g8模板。必须满足两个条件:一是目录带.g8后缀,二是用file://协议明确告诉sbt这是本地模板路径,这样它才能正确解析模板结构。
小技巧:如果不想重命名目录,也可以用路径拼接的方式指定,比如:
sbt new file:///C:/workspace/play-scala-seed/.g8不过重命名目录是最直观不容易出错的方式,更推荐前者。
内容的提问来源于stack exchange,提问作者Salim Fadhley
相关产品推荐
相关产品推荐

