【问题标题】:Building an SBT project using Maven使用 Maven 构建 SBT 项目
【发布时间】:2025-12-23 11:20:30
【问题描述】:
我正试图通过侧门将SBT 带入我的组织。我们将TeamCity 用于我们的持续集成系统,所有项目都使用Maven 构建。我开始更喜欢 SBT 来构建 Scala 和混合 Scala/Java 项目,但是如果我要求我们的基础架构团队修改持续集成系统以支持 SBT,我会遇到阻力。
我正在寻找一种方法来在我的项目的根目录中提供一个最小的pom.xml 文件,然后调用 SBT 来进行实际的构建。有什么办法可以做到这一点,也许使用 Maven-to-SBT 插件?
【问题讨论】:
标签:
scala
maven
teamcity
sbt
【解决方案1】:
我不喜欢反对基础设施,因为我在目前的工作中担任类似的角色。
但是,您可以下载sbt-launch.jar 并将其放在源代码控制存储库中的build 目录中。然后在 build 文件夹中创建一个 sbt 文件,内容如下:
#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"
然后创建一个命令行构建步骤,执行以下操作:
sh build/sbt clean compile
这应该可以满足您的需求,但前提是您能够设置自己的构建步骤来运行此自定义脚本。
我没有对此进行测试,并根据sbt Setup Documentation 进行了测试
希望对你有帮助。