我可以 运行 sbt new 使用本地模板(不是 GitHub)吗?

Can I run sbt new with a local template (not GitHub)?

我在一个安全的环境中工作,不允许开发人员从 GitHub 或任何其他外部存储库 git 克隆。

我能够从 GitHub 下载 g8 模板 (play-scala-seed) 作为 zip 文件,并将其解压缩到本地文件夹。我可以使用该本地目录而不是 git 存储库吗?

我第一次尝试失败:

> dir .\play-scala-seed
 Volume in drive C is OSDisk
 Volume Serial Number is A074-A016

 Directory of C:\workspace\play-scala-seed

03/22/2018  11:03 AM    <DIR>          .
03/22/2018  11:03 AM    <DIR>          ..
03/22/2018  11:01 AM    <DIR>          project
03/22/2018  10:57 AM    <DIR>          src
03/22/2018  11:03 AM    <DIR>          target
03/22/2018  10:57 AM                70 .gitignore
03/22/2018  10:57 AM               509 .travis.yml
03/22/2018  10:57 AM               453 build.sbt
03/22/2018  10:57 AM               439 LICENSE
03/22/2018  10:57 AM             1,166 README.md
               5 File(s)          2,637 bytes
               5 Dir(s)  220,172,980,224 bytes free

尽管我确定模板存在并且位于名为 "play-scala-seed" 的目录中,但 SBT 新命令不接受它:

> sbt new .\play-scala-seed
Template not found for: .\play-scala-seed

那么如何让 sbt new 为 g8 模板使用本地目录?

我是 运行 Windows(如果这很重要!)

当你直接使用 giter8 时,你只需要使用 file:// 前缀引用你的本地模板:

g8 file://play-scala-seed

如@volia17所述,您可以在giter8文档中找到它:Testing templates locally.

但是当你使用sbt new时,你需要模板名称(文件夹)以.g8结尾。 sbt 可以接受不同类型的模板,这样它就知道这是一个 giter8 模板。因此,您可以将模板文件夹重命名为 play-scala-seed.g8:

sbt new file://play-scala-seed.g8

P.S。直接使用 giter8 会快很多,因为 sbt new 启动需要时间(每次都会加载全局 sbt 插件)。