Fedora パッケージング ガイドラインを満たす sbt 0.12.3 用の RPM パッケージをビルドすることに興味があります。これを行うには、ソースからビルドされ、RPM パッケージ経由でインストールされたライブラリに対して sbt 自体をビルドできる必要があります。
Ivy を使用する Fedora の 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 をビルドするにはどうすればよいですか?