【问题标题】:Multi-project Play framework applications in IntelliJIntelliJ 中的多项目 Play 框架应用程序
【发布时间】:2015-08-12 10:17:07
【问题描述】:

我正在使用 IntelliJ 开发一个 Play 应用程序。该应用程序有几个内部开发的 maven 依赖项,其中一些被标记为“SNAPSHOT”,这意味着我希望立即看到它们所做的更改。

现在。当我在 IntelliJ 中更改 SNAPSHOT 依赖项时,我的 Play 应用程序不会选择它们,直到我构建并安装修改后的工件(使用 maven)并触发 Play 项目的 SBT 构建。否则应用程序看不到我的更改。

有什么方法可以让我的 Play 应用程序在本地解决依赖关系,而无需我每次修改其中一个 maven 项目时都进行安装和构建?

干杯, - 胡姬

PS:对于那些熟悉 Eclipse 思维方式的人来说,这正是我所寻找的。在那里,我可以将我的项目拆分为多个模块,并让 Eclipse 担心解决我在工作区中的依赖关系。

【问题讨论】:

    标签: maven intellij-idea playframework playframework-2.0


    【解决方案1】:

    据我所知,没有简单的方法可以神奇地工作,但是有几种替代方法可以减轻您的痛苦 - 使用 maven 插件进行游戏:

    ma​​ven-play2-plugin

    http://nanoko-project.github.io/maven-play2-plugin/maven/release/

    这个会获取你的依赖项并将它们复制到 lib 目录中,play 会在其中提取它们。仍然使用 sbt 构建应用程序的一部分 - 这是主要缺点,您需要维护 2 个构建。

    您仍然需要构建您的依赖项,然后将它们复制到 lib(使用 copy-dependencies 命令),但您的 IDE 会立即看到所有内容。

    play2-maven-plugin

    https://code.google.com/p/play2-maven-plugin/

    一切都是由 maven 构建的,但不支持 play 自动重新加载 - 每次进行更改时都需要构建并重新启动整个 play 项目,这有点回到原点。

    【讨论】:

    • 非常感谢您的回复!快速提问;如果将 maven 项目转换为 sbt,会解决问题吗?或者人们通常如何处理 Play Framework 中的多模块项目?
    • 我认为,为了让 play 能够在自动重新加载期间获取更改,其他模块必须是主项目的子模块:playframework.com/documentation/2.3.x/SBTSubProjects。否则外部 sbt 模块的行为与 maven 模块相同。
    • 这就是我的怀疑。感谢您的帮助。
    猜你喜欢
    • 2013-02-12
    • 2016-07-20
    • 2015-01-16
    • 2014-12-04
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多