背景:当社にはいくつかのPlayがあります!アプリは社内のCIでテストが実行されています。各Playアプリケーションは、http経由でさまざまな公開リポジトリからの依存関係を取得します。これは理想的ではありません(内部Nexusリポジトリをバイパスします)が、耐え難いことです。新しいCIの容量を追加し、新しいマシンがファイアウォールの外側にアクセスできるようにしたくありません。例ではプレイリストからすべてのデフォルトリゾルバを削除する方法応用?
はproject/Build.scala
でアプリ、次のような構成をプレイrepo.typesafe.com
とrepo1.maven.org
に行くビルドを防ぐのに十分ではありません。
sbtResolver := "Typesafe (proxy)" at "http://repo-1/nexus/content/repositories/typesafe-releases/"
resolvers := Seq(
"Maven Central (proxy)" at "http://repo-1/nexus/content/repositories/central/",
"Typesafe (proxy)" at "http://repo-1/nexus/content/repositories/typesafe-releases/",
// some more internal Nexus repositories
)
externalResolvers := Seq.empty
(repo-1
は、Mavenのセントラル、タイプセーフをプロキシ社内ネクサスホストであり、他のリポジトリ)
Maven Central(Guavaなど)やTypesafeのリポジトリ(Playメーラープラグインなど)からいくつかの依存関係を削除してplay compile
を実行すると、依存関係がまだ存在しないことが出力からわかりますグラムrepo.typesafe.com
とrepo1.maven.org
から取得:Scalaの2.9.1、2.0.1を再生、SBT 0.11.3:問題を化合物に
[info] downloading http://repo.typesafe.com/typesafe/releases/com/typesafe/play-plugins-mailer_2.9.1/2.0.2/play-plugins-mailer_2.9.1-2.0.2.jar ...
[info] [SUCCESSFUL ] com.typesafe#play-plugins-mailer_2.9.1;2.0.2!play-plugins-mailer_2.9.1.jar (981ms)
[info] downloading http://repo1.maven.org/maven2/com/google/guava/guava/12.0/guava-12.0.jar ...
[info] [SUCCESSFUL ] com.google.guava#guava;12.0!guava.jar (1422ms)
、我々はまた、上のすべての少し古いバージョンです。
Playアプリケーションが強制的に内部リポジトリから依存関係を取得するにはどうすればよいですか?
これは私のものより良い答えです。このメソッドを使用すると、プロジェクトのビルドファイル内のリポジトリリストは、真のリポジトリを指し示す「真」のままになります。個人は、独自のプロキシリポジトリに基づいて上書きを選択できます。 – Grundlefleck
私はLogamを研究するときにこのアプローチを試みましたが、不運にもうまくいきません。私はなぜsbtがMavenの設定をGradleとして簡単にサポートしているのではないのですか? – Hantsy