如何使用Maven依赖项将Play Framework 2.0集成到Gradle构建管理中?

时间:2012-04-24 14:16:40

标签: scala maven playframework gradle playframework-2.0

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-pluginhttp://grails.org/doc/latest/guide/commandLine.html#4.5%20Ant%20and%20Maven

当然,我可以编写调用“播放控制台命令”的脚本/任务。虽然,我不喜欢这个解决方案。有没有更好的方法来使用Gradle / Maven进行构建管理? 如果这是唯一的解决方案,那么我会使用Gradle,然后调用Play命令(即内部sbt),对吗?这是否有效,还是会出现其他问题?

4 个答案:

答案 0 :(得分:24)

这是一项非常棘手的业务。 Play中的SBT用于获取依赖项,编译源和模板,以及SBT增量编译+自动重新加载功能。我编写了一个build.gradle脚本来解析所有Play 2.0依赖项并设置Eclipse或IntelliJ IDEA类路径,并将其设为public here

我会在有空的时候尝试实施编译,但这需要一些研究。 当然,您可以添加仅委托给SBT的编译和运行任务,但这需要在SBT和Gradle中描述所有项目依赖项,这将很难管理。

修改

我更新了sample build.gradle文件。我添加了应在CI环境中提供帮助的playCompileplayClean任务。 playCompile任务执行以下操作:

  1. 将所有用户依赖项(在compile配置中定义)复制到lib/文件夹。这是有效的,因为Play会从lib/下面挑选所有的罐子。
  2. 执行play compile命令编译所有源,模板和其他Play框架内容。
  3. 您可以分别使用cleanCopyPlayLibsplayClean删除上述命令的输出。

    请注意,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构建Play应用程序
  2. 连续模式和热重新加载
  3. Scala interactive REPL
  4. 里程碑1已经完成。可通过Gradle nightly builds获取。在上面链接的博客文章中,他们鼓励人们尝试一下。

答案 3 :(得分:0)

我在Gradle for Play Framework 1.2.x中设计了一个简单的构建脚本,您也可以将其用于Play 2.x

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