Шаблонные проекты с Giter8

суббота, 28 октября 2017 г.
Надоело копировать build.sbt, plugins.sbt, .travis.yml и прочие шаблонные файлы каждый раз, когда садитесь за новый проект? Тогда у меня для вас есть хорошая новость: забудьте об этом и встречайте giter8!
 Giter8 - консольная утилита для управления шаблонами, хранящимися в git-репозитории. Но использовать ее мы конечно не будем :). Начиная с версии 0.13.13, sbt включает в себя возможность использования шаблонов проектов g8:
sbt new scala/hello-world.g8
Эта команда скачает все файлы отсюда: https://github.com/scala/hello-world.g8/tree/master/src/main/g8 к вам на машину.

Как создать свой шаблон

Все что вам нужно для создания собственного шаблона - это репозиторий с суфиксом .g8.

Структура репозитория 

Структура репозитория должна соответствовать следующим не хитрым требованиям:

  • Если в репозитории есть директория src/main/g8, то в качестве шаблона будут использоваться файлы из этой директории
  • В противном случае сам репозиторий будет представлять собой шаблон

Шаблонизация содержимого файлов

Для большей гибкости и удобства, giter8 предлагает механизм шаблонизации некоторых значений, на пример, чтобы иметь возможноть переопределить название нового проекта в build.sbt:
lazy val root = (project in file("."))
  .settings(
 name := "$name$"
  )
Работает все очень просто. Для определения используемых шаблонов, необходимо в репозиторий добавить файл default.properties.
name = my project
Он может находиться либо в директории project/, либо в корневой директории. Формат файла крайне прост: на каждой строке указывается название шаблона, а через знак = его значение поумолчанию. Описанные в default.properties шаблоны могут быть использованы в любом файле в репозитории, для этого шаблон должен быть заключен между двумя знаками $, как в примере выше. Актуальные значения для шаблонов будут запрошены при созданни нового проекта из шаблона. Более подробно можно прочитать здесь.

Внимание! Если вы используете в ваших файлах символ $, то вы должны его экранировать: \$, иначе создание нового проекта завершится с ошибкой Exiting due to error in the template.

Пример шаблона проекта

Пример моего шаблона для scala проекта с sbt версии 1.0 можно посмотреть здесь.
sbt new dokwork/sbt-1.0.g8

0 коммент. :: Шаблонные проекты с Giter8

Отправить комментарий

Ваше мнение мне искренне интересно. Смелее!

Технологии Blogger.