我有兴趣为 sbt 0.12.3 构建一个符合Fedora 打包指南的 RPM 包。为了做到这一点,我需要能够针对从源代码构建并通过 RPM 包安装的库构建 sbt 本身。
Fedora 中使用 Ivy 的 Java 包能够通过禁用网络解析器并解析来自的所有包来解析 RPM 安装的工件/usr/share/java/[artifact].[ext]
——请参阅此处的示例。
我想我了解如何使用启动属性文件覆盖 sbt 中的默认解析器,但这是我遇到问题的地方:如果我将 Ivy 目录设置为/usr/share/java
,sbt 希望能够将工件发布到该目录(不仅仅是在那里寻找现有的工件),我不希望它这样做(一般情况下和这种 RPM 构建的特定情况)。如果我指定file:///usr/share/java
为代理位置(按照下面 Mark 的说明),sbt 将失败(引用该ivy.xml
位置没有)。
我可以通过修改project/p.sbt
指向显式 URL(例如"org.jsoup" % "jsoup" % "1.7.1" from "file:///usr/share/java/jsoup.jar"
)来找到本地安装的依赖项,但这不适用于 scala 和 scala 库(并且通常显然不是正确的做法)。
如何针对(并且仅针对)本地安装的 RPM 管理的系统 Scala 和库构建 sbt?