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),对吗?这是否有效,还是会出现其他问题?
4 回答
这是一项非常棘手的业务 . Play中的SBT用于获取依赖项,编译源和模板,以及用于SBT增量编译自动重新加载功能 . 我编写了一个
build.gradle
脚本来解析所有Play 2.0依赖项并设置Eclipse或IntelliJ IDEA类路径,并使其成为public here .我会在有空的时候尝试实施编译,但这需要一些研究 . 当然,您可以添加仅委托给SBT的编译和运行任务,但这需要在SBT和Gradle中描述所有项目依赖项,这将很难管理 .
Edit:
我已经更新了sample build.gradle文件 . 我添加了
playCompile
和playClean
任务,这些任务应该有助于CI环境 .playCompile
任务执行以下操作:将所有用户依赖项(在
compile
配置中定义)复制到lib/
文件夹 . 这是有效的,因为Play会从lib/
下收集所有的 jar .执行
play compile
命令编译所有源,模板和其他Play框架内容 .您可以分别使用
cleanCopyPlayLibs
和playClean
删除上述命令的输出 .请注意,Windows上似乎存在一个奇怪的问题(错误?),这意味着即使
play compile
失败,gradle也会告诉您它成功了 .Reply to comment:
我想你只是失踪了
在你的文件中 . 检查this doc out .
好消息,从Gradle 2.7开始,有一个官方播放插件:https://docs.gradle.org/current/userguide/play_plugin.html
LinkedIn is currently making a Gradle plugin to support this . 他们在3个里程碑中推出了这个:
使用Gradle构建Play应用程序
连续模式和热重新加载
Scala交互式REPL
Milestone 1 is already complete. 可通过Gradle nightly builds获取 . 在上面链接的博客文章中,他们鼓励人们尝试一下 .
我在Gradle for Play Framework 1.2.x中设计了一个简单的构建脚本,您也可以将其用于Play 2.x.
https://github.com/kirang89/play-gradle