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

Kai*_*ner 33 scala gradle maven playframework 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),对吗?这甚至可以工作,还是会出现其他问题?

rod*_*ion 24

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

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

编辑:

我更新了示例build.gradle文件.我已经加入playCompile,并playClean应在CI环境帮助任务.该playCompile任务执行以下操作:

  1. 将所有用户依赖项(在compile配置中定义)复制到lib/文件夹.这是有效的,因为Play会从下面拿起所有的罐子lib/.
  2. 执行play compile命令来编译所有源,模板和其他Play框架的东西.

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

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

回复评论:

我想你只是失踪了

repositories{
  mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)

在你的文件中.检查此文档.

  • 此外,如果您有兴趣直接向gradle添加任何支持,您可能希望联系那些看起来已经在他们的雷达上的人们https://github.com/gradle/gradle/blob/master/design-docs/play -support.md (2认同)

man*_*ana 5

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