2011-11-01 12 views
7

Używam Grails 1.3.7 i nie mogę dowiedzieć się, jak uzyskać 4.0 wersji httpclient z mojej ścieżki klasy (na rzecz 4.1). Muszę to zrobić z powodu konstruktora no-args używanego w 4.1, na którym opiera się wtyczka.Jak uzyskać wersję 4.0 programu httpclient z mojej ścieżki klasy w grails

Uruchamiając raport zależności "grails", wydaje się, że 4.1 powinno być używane w czasie wykonywania. I to JEST, jeśli spakuję rzeczy do .war. JEDNAKŻE wersja 4.0 wciąż kończy się na ścieżce klas, gdy z jakiegoś powodu używa się aplikacji. Zauważ, że jest on (poprawnie) używany podczas kompilacji dla niektórych wewnętrznych graalów i jakoś nadal kończy się na mojej ścieżce klas.

-> Czy mogę dowiedzieć się, gdzie dokładnie to 4,0 .jar pochodzi, a kończąc na mojej ścieżce klasy i zatrzymać jej dzieje

(gdzie są wszyscy .jars umieścić po uruchomieniu przez run-app?) -> Czy mogę powiedzieć, aby grails skompilował się z 4.1 zamiast z 4.0 dla swoich wewnętrznych elementów (w tym przypadku http-builder przez org.codehaus.groovy.modules.http-builder module?) Nie do końca jest najlepszym rozwiązaniem, ale wezmę to , jak pakowanie wszystkiego w .war za każdym razem, gdy chcę przetestować, nie jest przyjemne.

Pomoc byłaby bardzo ceniona.

Odpowiedz

7

Właśnie przeszedł przez to samo, dodaj następującą do BuildConfig.groovy

dependencies {   
     build 'org.apache.httpcomponents:httpcore:4.1.2' 
     build 'org.apache.httpcomponents:httpclient:4.1.2' 
     runtime 'org.apache.httpcomponents:httpcore:4.1.2' 
     runtime 'org.apache.httpcomponents:httpclient:4.1.2' 
} 

okrzyki

Lee

+0

Właściwie to rozwiązałem, modyfikując wtyczkę, która określiła 'build': release: 1.0.0.RC3 ', dodając' exported = false ', ale zaakceptowałem twoje rozwiązanie, ponieważ może być nieco czystsze, aby utrzymać je w twoim własny kod i nie trzeba modyfikować pliku zależności wtyczek. Podsumowując, jest to specyfikator "build". to jest winowajca. Dzięki – Peter

1

Można uzyskać httpclient 4,0 off ścieżce klasy dodając wyklucza linia w BuildConfig.groovy. Sprawdź, która wtyczka deklaruje to jako zależność, używając polecenia grails dependency-report.

Po znalezieniu tego, który go zawiera, możesz wykluczyć go w sekcji wtyczek BuildConfig.groovy. Przykład:

plugins { 
    compile ':other-plugin:1.0.0' // other-plugin depends on httpclient 4.1 
    compile(':aws:1.2.12.2') { // aws plugin depends on httpclient:3.1 
     excludes 'httpclient' 
    } 
} 

Wtyczka, która opiera się na nie-Arg konstruktora httpclient 4.1 należy uznać je jako zależność. Jeśli nie, powinieneś otworzyć problem z autorem wtyczki. Aby to obejść, możesz wyświetlić httpclient 4.1 w sekcji zależności, tak jak opisane powyżej leebutty.

Powiązane problemy