Я звик до проектів Spring та Maven, де я створив багатомодульний проект в Maven з такими проектами:
app-web
app-models
app-services
app-common
Я зараз використовую Play Framework 2 (Scala) і СБТ.
Чи є подібна концепція з Play і sbt, що я можу згрупувати всі ці проекти в єдине рішення IntelliJ IDEA і sbt?
Відповіді:
8 для відповіді № 1IntelliJ IDEA 13 (остання версія є 13.1.3) поставляється с вбудована підтримка SBT, і Випуск Ultimate додає підтримку Play.
Мультимодульний sbt-проект можна імпортувати до IDEA і повністю підтримувати його поза коробкою, однак він на основі Play чи ні (вони "sbt проекти все-таки).
Спробуйте спробувати самостійно за допомогою наступного дуже спрощеного файлу збірки build.sbt (або просто генерувати проект Play із play new
або краще зараз activator new [your-project-name] play-scala
):
lazy val a, b, c = project
і наступне project/build.properties
:
sbt.version=0.13.5
Нічого, крім цих двох вищезазначених файлів, не потрібно для початку роботи з sbt / activator.
У IDEA відкрийте проект, використовуючи File > Open...
і виберіть build.sbt
.
Натисніть OK
щоб побачити ще одне вікно, де ви вказуєте додаткові параметри конфігурації для проекту. Потім з'являються модулі.
1 для відповіді № 2
Ви, ймовірно, не змогли б згрупувати їх в один проект ідеально, але ви могли б мати кілька проектів точно:
у вашому проекті / Build.scala:
{
val baseDependencies = Seq(
"org1" % "dep" % "latest.integration",
"org2" % "dep2" % "version"
)
val modelDependencies = baseDependencies ++ Seq("org3" % "dep3" % "version")
val appWeb = play.Project("app-web", "1.0", baseDependencies)
val appModels = play.Project("app-models", "1.0", modelDependencies, path = file("modules/models"))
val app = play.Project("app", "1.0", Nil).aggregate(appWeb, appModels)
}
У цьому випадку у вас буде звичайна програма, яка називається"app-web", модуль appModels під модулями / моделями без каталогу проектів і регулярних конфіденційних програм, наприклад application.conf, і зведеним додатком під назвою "app".
Коли ви запускаєте ігрову консоль, ви можете переключитисядо певних проектів, ввівши "проект (ім'я)". Наприклад, ви можете ввести "проект app-web", а потім "ідею", щоб генерувати проект-рішення для проекту. Ви також можете переключитися на проект "додаток", коли всі команди, введені під ним, будуть застосовані до всіх підпроектів.
Докладніше перегляньте тут документацію: http://www.playframework.com/documentation/2.2.x/SBTSubProjects