Tło: nasza firma ma kilka gier! aplikacje, których testy działają w naszym wewnętrznym CI. Każda aplikacja Play pobiera zależności od różnych publicznych repozytoriów za pośrednictwem protokołu http. To nie było idealne (omija nasze wewnętrzne repozytorium Nexusa), ale można je znieść. Teraz dodajemy dodatkową pojemność CI i nie chcemy pozwolić nowym urządzeniom na dostęp poza zaporą.Jak usunąć wszystkie domyślne przeliczniki z gry! podanie?
W aplikacji przykład Play, następująca konfiguracja w project/Build.scala
nie wystarczy, aby zapobiec gromadzeniu zamiar repo.typesafe.com
i 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
jest nasz wewnętrzny gospodarz Nexus, który Prokurenci Maven Central, Typesafe, i inne repozytoria)
Kiedy usuwam niektóre zależności, albo z Maven Central (np. Guava), albo z repozytorium Typesafe (np. wtyczka Play mailer), i uruchamiam play compile
, widzę z wyjścia, że zależności wciąż są w g pobierane z repo.typesafe.com
i repo1.maven.org
:
[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)
Aby związek ten problem, jesteśmy również na nieco starsze wersje wszystko: Scala 2.9.1, Play 2.0.1, SBT 0.11.3.
Jak wymusić wyłączenie aplikacji Play wyłącznie w celu pobrania zależności z wewnętrznego repozytorium?
To jest lepsza odpowiedź niż moja własna. Przy użyciu tej metody lista repozytoriów w pliku kompilacji projektu może pozostać "prawdziwa", wskazując na realne repozytoria. Poszczególne osoby mogą następnie przesłonić w oparciu o własne repozytoria proxy. – Grundlefleck
Próbowałem tego podejścia, gdy studiuję Logam, niestety nie działa. Nie wiem, dlaczego sbt nie wspiera łatwo ustawień Maven jako Gradle. – Hantsy