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