首页 文章

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

提问于
浏览
33

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 回答

  • 5

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

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

    Edit:

    我已经更新了sample build.gradle文件 . 我添加了 playCompileplayClean 任务,这些任务应该有助于CI环境 . playCompile 任务执行以下操作:

    • 将所有用户依赖项(在 compile 配置中定义)复制到 lib/ 文件夹 . 这是有效的,因为Play会从 lib/ 下收集所有的 jar .

    • 执行 play compile 命令编译所有源,模板和其他Play框架内容 .

    您可以分别使用 cleanCopyPlayLibsplayClean 删除上述命令的输出 .

    请注意,Windows上似乎存在一个奇怪的问题(错误?),这意味着即使 play compile 失败,gradle也会告诉您它成功了 .

    Reply to comment:

    我想你只是失踪了

    repositories{
      mavenCentral()
    }
    

    在你的文件中 . 检查this doc out .

  • 3

    好消息,从Gradle 2.7开始,有一个官方播放插件:https://docs.gradle.org/current/userguide/play_plugin.html

  • 24

    LinkedIn is currently making a Gradle plugin to support this . 他们在3个里程碑中推出了这个:

    • 使用Gradle构建Play应用程序

    • 连续模式和热重新加载

    • Scala交互式REPL

    Milestone 1 is already complete. 可通过Gradle nightly builds获取 . 在上面链接的博客文章中,他们鼓励人们尝试一下 .

  • 0

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

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

相关问题