【发布时间】:2014-12-10 09:50:21
【问题描述】:
目前我们所有的项目都是在 Windows 上使用 Maven 构建的。我们没有成功地使增量编译的代码在运行时工作(50% 的情况下它因某种错误而失败),所以为了从暖编译器和(也许?)正常工作的增量编译中受益,我们考虑迁移到SBT。然而,目前我只有一个 sprint 要做,我害怕把所有的鸡蛋放在一个篮子里,然后尝试在一个 sprint 中迁移整个项目。我需要找到一种方法使这种变化逐渐进行,这样我就可以一次推进一个模块。所以这里是主要问题:
- 如何在 Maven 构建中包含 SBT 模块(反之亦然,在 SBT 中有我的“父级”,但部分模块仍在使用 Maven 构建)?
- 我们如何仍能从 IDE 支持(当前为 IntelliJ 13)中受益,例如更新 pom / Build.scala 更改索引、任务和目标调用等?
非常感谢任何关于该主题的建议。
【问题讨论】:
-
您将需要某种插件来实现这一点 - 无论是在 sbt 还是在 maven 端。快速谷歌搜索发现github.com/shivawu/sbt-maven-plugin 和github.com/sbt/sbt-pom-reader
-
增量编译应该是编译器的事情。我不认为 SBT 会有所帮助,但如果你尝试,祝你好运。据我所知,您将失去 IDE 支持。我建议为 SBT 和 Maven 设置单独的项目,并通过正常的 maven 存储库机制依赖它们(您可以将本地 maven 存储库添加为 SBT 解析器)。您仍然需要两个不同的构建命令,但是其中一个的项目可以依赖于另一个,这很重要。
-
@Imm 关于增量编译 - 是的,我们可能不会赢得任何东西,但这是逐渐改变的另一个原因,所以我们将让一个模块与 sbt 一起工作,然后根据性能决定是否应该进步。我们确实考虑过将项目分开的选项,但这有点棘手,因为我们在服务器端有一个大模块和一个小模块,仅通过 .m2 连接来处理它们并不方便,并且迁移两者风险仍然很大。
-
那些插件的描述看起来很有希望,但它们似乎处于“半衰期”状态。如果有人愿意分享他使用它们的经验,那可能会让人放心。
标签: scala maven intellij-idea sbt