我想使用 CloudBees Jenkins 服务来构建基于 SBT 的 scala 项目的夜间快照,并将它们发布到 Sonatype OSS Maven 存储库。SBT 有 两种方式为构建提供发布凭证;一个在 .sbt 文件中内嵌凭据(未加密,natch),另一个使用外部属性文件的硬编码路径(遗憾的是,仍然未加密)。
CloudBees 有一种提供配置文件来构建代理的机制,但我不想在我的 中硬编码此位置的路径build.sbt
,也找不到任何方法告诉 SBT.sbt
从命令行读取文件。我最接近的方法是设置sbt.global.base
系统属性,但不幸的是这失败了,因为配置文件的位置是只读的,而 SBT 使用这个位置来编译它的类文件。
Damien Lecan通过运行一个预构建脚本将一组文件复制到构建执行程序的目录中想出了一个巧妙的方法来解决这个问题。我发现这个解决方案可以接受但令人反感,因为它使构建依赖于临时状态并增加了另一个潜在的故障点。.sbt
$HOME/.sbt
如何发布具有只读私有凭据的构建时访问权限的 SBT 项目?