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

时间:2018-03-22 11:16:28

标签: scala sbt giter8

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

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

我对此的第一次尝试失败了:

> 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(如果重要的话!)

1 个答案:

答案 0 :(得分:4)

当您直接使用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插件)。