2013-10-25 11 views
10

社内のivy/mavenリポジトリ(artifactory)を使用して、解決のスピードを向上させ、jarファイルをダウンロードし、組織の異なるチーム間でバイナリjarファイルを交換したいと考えています。(SBT)デフォルトリゾルバを無効にし、社内リゾルバのみを使用する方法は?

私たちは

[repositories] 
    local 
    my-ivy-proxy-releases: http://repo.alpinenow.com/artifactory/repo/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext] 
    my-maven-proxy-releases: http://repo.alpinenow.com/artifactory/repo/ 

~/.repositoriesを設定することで、プロキシを通過するSBTを強制し、その後-Dsbt.override.build.repos=trueでSBTを起動することができます知っています。この方法は私のために働く。

しかし、すべての開発者にこのような設定を依頼するのは面倒です。追加の設定をせずにBuild.scalaとplugin.sbtでデフォルトのリゾルバを完全に上書きできるかどうかは疑問です。

これまでのところ、私は成功せずに以下の方法を試みました。 Build.scalaとplugin.sbt両方において

1)、Iは

resolvers := "Local Repo" at "http://repo.alpinenow.com/artifactory/repo/", 

externalResolvers := Seq(Resolver.url("Local Repo", url("http://repo.alpinenow.com/artifactory/repo"))(Resolver.ivyStylePatterns)), 

を追加し、それはまだタイプセーフとmaven1からjarファイルをダウンロードします。

2)私は、リポジトリはプロジェクトフォルダにファイルを置くことを決めた、とplugin.sbt内に直接Javaオプションを追加しようとしました、そしてBuild.scala

System.setProperty("-Dsbt.override.build.repos", "true"), 

System.setProperty("-Dsbt.repository.config", "project/repositories"), 

と、それはまだ動作しません。明らかに、plugin.sbtとBuild.scalaの前にあるので、SBTがリゾルバのjavaオプションを取得すると、私は興味があります。

ありがとうございました。私はいつもSBTは、コードとの緊密な、SVN/GITでの私のレポの一部として構築追加してい

DBツァイ

+0

公式文書によると、あなたのリポジトリ設定は '〜/ .sbt/repositories'ではなく、'〜/ .repositories'であるべきですか? – Luciano

答えて

2

を取得します。次に、開発者がそのスクリプトを使用できるようにするだけです。

+0

うん。 Build.scalaなどでそれを行う方法が見つからない場合は、おそらくデフォルトのランチャースクリプトを置き換えます。しかし、それは私がやる最後の方法です。 –

+0

この目的のために、これを私たちの解決策として使用します。ありがとう。 –

+0

'-Dsbt.override.build.repos = true'をどこで設定しますか?ファイル内またはsbtパラメータとして – pedromss

1

。それで私はそのような問題はない。

容量は約1MBですので、かなり安く、多くの問題を解決します。すべての開発者は同一のビルドツールを使用します。 Continues Integrationまたはより高度なContinue Deliveryプロセスを作成しようとしても、すべてのSBT設定はすでにSCMでうまく設定されています。私は、デフォルトのランチャースクリプトの代わりとしてsbt-extrasシェルスクリプトから逸脱した場合、私はあなたが簡単に~/.repositoriesを設定し、-Dsbt.override.build.repos=trueを追加することでこれを修正することができると思い真の一つのソース:)

関連する問題