Подтвердить что ты не робот

Как интегрировать Play Framework 2.0 в Gradle управление построением с использованием зависимостей Maven?

Play framework 2.0 представляет собой автономную структуру полного стека для создания веб-приложений. Вероятно, многие люди должны интегрировать его в управление построением, тем не менее. К сожалению, я не нашел много информации о нем.

Вот мой прецедент: я хочу создать новый проект, который использует Scala и Play 2.0. Я НЕ хочу использовать sbt. Я хочу использовать Gradle, а управление зависимостями должно выполняться через репозитории Maven.

Я только нашел этот модуль воспроизведения: http://www.playframework.org/modules/maven-1.0/home, который поддерживает управление зависимостями через Maven.

Я ищу что-то подобное этим примерам в Grails: https://github.com/grails/grails-gradle-plugin или http://grails.org/doc/latest/guide/commandLine.html#4.5%20Ant%20and%20Maven

Конечно, я мог писать сценарии/задачи, которые вызывают "play console commands". Хотя, мне это не нравится. Есть ли лучший способ использовать Gradle/Maven для управления построением? Если это единственное решение, я бы использовал Gradle, который затем вызывает команды Play (т.е. Sbt внутри), правильно? Это даже работает, или возникнут другие проблемы?

4b9b3361

Ответ 1

Это очень сложный бизнес. SBT in Play используется для извлечения зависимостей, компиляции исходных текстов и шаблонов, а также для инкрементной компиляции SBT + функции автоматической перезагрузки. Я написал build.gradle script для разрешения всех зависимостей в Play 2.0 и настройки классов Eclipse или IntelliJ IDEA и сделал его здесь публичным.

Я попытаюсь выполнить компиляцию позже, когда у меня будет время, но это потребует некоторых исследований. Конечно, вы можете добавлять компилируемые и запускаемые задачи, которые просто делегируют SBT, но для этого потребуется описать все зависимости проекта в обоих SBT и Gradle, что станет трудно управлять.

Edit:

Я обновил файл sample build.gradle. Я добавил задачи playCompile и playClean, которые должны помочь в среде CI. Задача playCompile выполняет следующие действия:

  • Скопируйте все пользовательские зависимости (определенные в конфигурации compile) в папку lib/. Это работает, потому что Play будет любезно отображать все банки из-под lib/.
  • Выполнить команду play compile, чтобы скомпилировать все источники, шаблоны и другие материалы в среде Play.

Вы можете использовать cleanCopyPlayLibs и playClean, чтобы удалить выходные данные указанных выше команд соответственно.

Обратите внимание, что в Windows возникает странная проблема (ошибка?), что означает, что даже если play compile не работает, gradle сообщит вам, что это удалось.

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

Я думаю, что вы просто отсутствуете

repositories{
  mavenCentral()
}

в вашем файле. Проверьте этот документ.

Ответ 3

В настоящее время LinkedIn создает плагин Gradle для поддержки этого. Они свертывают это в 3 этапа:

  • Использование Gradle для создания приложения Play
  • Непрерывный режим и горячий перезапуск
  • Scala интерактивный REPL

Milestone 1 уже завершена. Доступно через Gradle ночные сборки. На вышеупомянутом связанном блоге они побуждают людей попробовать.

Ответ 4

Я разработал простую сборку script в Gradle для Play Framework 1.2.x, которую вы также можете использовать для Play 2.x

https://github.com/kirang89/play-gradle