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

标签 scala maven playframework gradle playframework-2.0

Play framework 2.0 是一个用于创建 Web 应用程序的全栈独立框架。尽管如此,许多人可能需要将其集成到他们的构建管理中。不幸的是,我没有找到关于他的太多信息。

这是我的用例:我想创建一个使用 Scala 和 Play 2.0 的新项目。我不想使用 sbt。我想使用 Gradle,依赖管理应该通过 Maven 存储库来完成。

我只找到了这个 Play 模块: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

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

最佳答案

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

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

编辑:

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

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

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

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

    回复评论:

    我想你只是失踪了
    repositories{
      mavenCentral()
    }
    

    在你的文件中。查看this doc out .

    关于scala - 如何使用 Maven 依赖项将 Play Framework 2.0 集成到 Gradle 构建管理中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299815/

    相关文章:

    scala - 如何将一个加特林请求返回到另一个请求中-Scala

    scala - 存在类型的惯用替换

    java - 如何从Maven项目中的pom.xml中查找本地Java路径?

    mongodb - Scala 和 Playframework : what they mean with ExecutionException: Boxed Error

    scala - 从数据框中选择时重命名列名

    scala - 比较两个具有其他含义的字符串

    spring - 带有 Spring Boot 的多模块 Maven 示例

    java - Maven包错误

    java - 无法使用注入(inject)器注入(inject) Play 的 WSClient 实例

    Playframework 功能测试 java.util.concurrent.TimeoutException