20

社内の ivy/maven リポジトリ (artifactory) を使用して、jar ファイルの解決とダウンロードの速度を向上させたいと考えています。また、それを使用して、組織内の異なるチーム間でバイナリ jar ファイルを交換したいと考えています。

~/.repositoriesで設定することにより、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/

で SBT を起動し-Dsbt.override.build.repos=trueます。この方法は私にとってはうまくいきます。

ただし、すべての開発者にこのようにセットアップするように依頼するのは面倒です。Build.scala と plugin.sbt で、追加の構成なしでデフォルトのリゾルバーを完全にオーバーライドできるかどうか疑問に思っています。

これまでのところ、成功せずに次の方法を試しました。

1) Build.scala と plugin.sbt の両方に、追加しました

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)),

ただし、typesafe と maven1 から jar をダウンロードします。

2)次に、リポジトリファイルをプロジェクトフォルダーに配置することにし、Javaオプションをplugin.sbt内に直接追加しようとしました.Build.scalaで

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

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

しかし、それでも機能しません。SBT がリゾルバーの Java オプションをいつ取得するかは、明らかに plugin.sbt と Build.scala の前なので、興味があります。

何か案が?

ありがとう。

DB ツァイ

4

3 に答える 3

4

プロジェクトレベル

使用する必要があるドキュメントによるとexternalResolvers:
https://www.scala-sbt.org/release/docs/Library-Dependencies.html#Overriding+default+resolvers

externalResolvers := Seq(
  "Local Repo" at "http://repo.alpinenow.com/artifactory/repo/",
  // some more internal Nexus repositories
)

プラグインレベル

projectのようなプラグイン用のフォルダーでも行う必要がありますproject/resolvers.sbt

世界の SBT レベル

また、SBT 自体を特定のリポジトリから解決したい場合は、ここで説明されているようにする必要があります: https://www.scala-sbt.org/1.x/docs/Proxy-Repositories.html

于 2019-07-04T00:55:43.317 に答える
3

デフォルトのランチャー スクリプトの代わりにsbt-extrasシェル スクリプトを使用しない場合は、セットアップし~/.repositories-Dsbt.override.build.repos=true. あとは、開発者がそのスクリプトを使用するようにするだけです。

于 2013-10-26T16:17:48.210 に答える
0

私は常に SVN/GIT のレポの一部として SBT ビルドを追加しており、コードで閉じています。それから私はそのような問題はありません。

約 1MB のスペースがかかるため、非常に安価で、多くの問題を解決します。すべての開発者は同一のビルド ツールを使用します。Continues Integration またはより高度な Continues Delivery プロセスを作成しようとしても、すべての SBT 構成は SCM で既に適切に構成されています。私は真のソースを1つ取得します:)

于 2013-10-25T11:43:36.450 に答える