5

Od ostatniego piątku, moje aplikacje Play Framework pobierają 15 minut na kompilację, z powodu bardzo długich czasów rozwiązywania zależności.Rozgrywka Play zajmuje bardzo dużo czasu, aby rozwiązać zależności.

Zależności znajdują się na repo.typesafe.com, repo1.maven.org i kilku innych, w tym na przykład Deadbolt, hostowanych na stronach GitHub (http://schaloner.github.com), więc nie jestem pewien, czy to zależy od jednego zewnętrznego repo.

Nie mogę dla mojego życia dowiedzieć się, co jest przyczyną tego. Czy ktoś może mi powiedzieć, od czego zacząć kłopoty?

EDIT: Dalsze informacje - Ja testowałem nową aplikację grać z nowej instancji Gra na nową maszynę wirtualną (Ubuntu 12.04) i dostaję te same długie czasy rozdzielczości do dodawania złącze mysql jdbc z Maven 1 i Deadbolt z GitHub Pages. Wygląda na to, że wisi na jednym z repozytoriów, a nie na czas, ale nie wiem, jak to rozgryźć. Skomentowałem repozytorium TypeSafe w pliku plugins.sbt, ale problem nadal występuje. Wyciągam teraz włosy.

EDYCJA 2: Błąd występuje w gałęziach 2.0 i 2.1. Nie można replikować w 2.2. W tej chwili wygląda na to, że dodanie opublikowanych plików do [Play directory]/repository/cache powoduje zatrzymanie odtwarzania od próby rozwiązania wszystkiego za każdym razem.

+0

mam ten sam problem . – stys

+0

Zmień poziom rejestrowania na "Ostrzegaj" w projekcie/plugins.sbt. 'logLevel: = Level.Warn' – Adil

+0

@Adil Wszystkie projekty mają już ustawiony poziom dziennika. – evanjdooner

Odpowiedz

1

Myślę, że przyczyną problemu jest przestój w Github. Mój projekt zależy Github-hostowanych projektów takich jak zasuwa, a więc dodałem odpowiednie repozytoria do mojego Build.scala złożyć

resolvers += Resolver.url("Objectify Play Repository (release)", url("http://schaloner.github.com/releases/"))(Resolver.ivyStylePatterns), 
resolvers += Resolver.url("Objectify Play Repository (snapshot)", url("http://schaloner.github.com/snapshots/"))(Resolver.ivyStylePatterns) 

Co zauważyłem jest to, że play próbami, aby rozwiązać mój inne zależności, za pośrednictwem tego repozytorium. Na przykład, widziałem problemy z przekroczeniem limitu czasu w rozwiązywaniu apache.commons-io i htmlunit i jego zależności przechodnich w repozytorium hostowanym przez Gythub Deadbolta. W normalnym przypadku takie próby zawiodłyby szybko. Ale gdy Github jest powolny, uzyskanie odpowiedzi na błąd trwa bardzo długo.

Powinien istnieć sposób dokładniejszego określenia, które repozytorium ma być używane dla każdej zależności, ale nie jestem pewien, jak to zrobić z SBT lub Maven.

UPDATE

Problem nie został rozwiązany. Oto przykład z limitu czasu błędu, tym razem na Typesafe repozytorium

[error] Server access Error: Connection timed out: connect url=http://repo.types 
afe.com/typesafe/releases/org/apache/commons/commons-email/1.2/commons-email-1.2 
.jar 

UPDATE 2

Bardzo podobny problem został widział:

https://groups.google.com/forum/#!msg/play-framework/cBIkLb_WPN8/uuJIdhdtvtEJ

+0

To jest coś, co rozważałem. Myślałem, że ma to coś wspólnego z błędami w jednym z odległych repozytoriów. Moje testy zostały wykonane z nowymi instalacjami Play i nowymi projektami z tylko zależnością mysql-connector-java od Maven 1 i bez niestandardowych resolverów.Widziałem na nim długi czas rozwiązania w grach w wersji 2.0.X i 2.1.X, ale nie w wersji 2.2.X. Aktualizacja do wersji 2.2.2 rozwiązała problem na teraz. – evanjdooner

+1

Odkąd przeprowadziliśmy się do wersji 2.2.2, nie mieliśmy żadnych problemów. Mogę potwierdzić, że problem jest nadal widoczny w wersji 2.1.5 od dnia 22 kwietnia 2014 roku – evanjdooner

+1

@evanjdooner. Dziękujemy za aktualizację. Rozważam przejście do wersji 2.2.2, co wymagałoby pewnych wysiłków. Obecnie używam szybkiego obejścia. Przy pierwszej kompilacji po oczyszczeniu ręcznie usuwam repozytoria oparte na github z Build.scala. Dzięki temu inne zależności mogą szybko rozwiązać problemy i uzyskać buforowanie. Następnie wkładam usunięte części i buduję po raz drugi. – stys

Powiązane problemy