Play framework 2.0是一个用于创建Web应用程序的全栈独立框架。然而,可能许多人需要将其集成到他们的构建管理中。不幸的是,我没有找到关于他的更多信息。
这是我的用例:我想创建一个使用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
当然,我可以编写调用“播放控制台命令”的脚本/任务。虽然,我不喜欢这个解决方案。有没有更好的方法来使用Gradle / Maven进行构建管理? 如果这是唯一的解决方案,那么我会使用Gradle,然后调用Play命令(即内部sbt),对吗?这是否有效,还是会出现其他问题?
答案 0 :(得分:24)
这是一项非常棘手的业务。 Play中的SBT用于获取依赖项,编译源和模板,以及SBT增量编译+自动重新加载功能。我编写了一个build.gradle
脚本来解析所有Play 2.0依赖项并设置Eclipse或IntelliJ IDEA类路径,并将其设为public here。
我会在有空的时候尝试实施编译,但这需要一些研究。 当然,您可以添加仅委托给SBT的编译和运行任务,但这需要在SBT和Gradle中描述所有项目依赖项,这将很难管理。
修改强>
我更新了sample build.gradle文件。我添加了应在CI环境中提供帮助的playCompile
和playClean
任务。 playCompile
任务执行以下操作:
compile
配置中定义)复制到lib/
文件夹。这是有效的,因为Play会从lib/
下面挑选所有的罐子。play compile
命令编译所有源,模板和其他Play框架内容。您可以分别使用cleanCopyPlayLibs
和playClean
删除上述命令的输出。
请注意,Windows上似乎存在一个奇怪的问题(错误?),这意味着即使play compile
失败,gradle也会告诉您它已成功。
回复评论:
我认为你只是缺席
repositories{
mavenCentral()
}
在你的档案中。检查this doc out。
答案 1 :(得分:5)
好消息,从Gradle 2.7开始,有一个官方播放插件:https://docs.gradle.org/current/userguide/play_plugin.html
答案 2 :(得分:3)
LinkedIn is currently making a Gradle plugin to support this。他们在3个里程碑中推出了这个:
里程碑1已经完成。可通过Gradle nightly builds获取。在上面链接的博客文章中,他们鼓励人们尝试一下。
答案 3 :(得分:0)
我在Gradle for Play Framework 1.2.x中设计了一个简单的构建脚本,您也可以将其用于Play 2.x