2015-09-16 20 views
8

Mam problem z konfigurowaniem Buildship for Eclipse w żądany sposób. Obecnie mam> 50 projektów zawsze otwartych w Eclipse, ale chcę przejść do posiadania tylko projektów, nad którymi aktywnie pracuję w Eclipse, a inne projekty używają repozytorium Maven, aby rozwiązać ich zależność.Gradle + Buildship - Przełącz zależność między JAR i projektami

Powiedzmy, że ProjectA (który zawiera główną) zależy od ProjectB (projektu biblioteki). Jeśli ProjectB zostanie otwarty w środowisku Eclipse, chciałbym, aby ProjectA używał bezpośrednio ProjectB. Zmiana kodu w ProjectB byłaby zauważalna podczas pracy z ProjectA. Jednakże, jeśli ProjectB jest zamknięty, chciałbym, aby ProjectA używał JAR ProjectB w repozytorium Maven wspomnianym w pliku build.gradle.

Zachowanie, o którym mówię, jest szczegółowe: here.

Czy można to zrobić za pomocą programu Buildship? Czy powinienem użyć innej wtyczki Gradle Eclipse?

Odpowiedz

8
  1. W programie Gradle 3.1 dodano nową funkcję composite build support. Ta funkcja jest zmieniarką gier i ułatwia pracę z więcej niż jednym projektem naraz.

  2. Możesz użyć dependency substitution rules, aby zamienić zależności repozytorium z lokalnymi zależnościami projektu.

  3. Jeśli każdy projekt znajduje się w osobnym repozytorium git/subversion, można użyć prezi pride do zarządzania "dumą" projektów. Można zaimportować (wygenerowaną dynamicznie) wielomodułową kompilację do poziomu wbudowanego.

  4. Jeśli chcesz użyć eclipse plugin zamiast buildship użyć whenMerged lub withXml haki do dostrojenia wygenerowane .classpath pliki aby wskazywały projektów w przestrzeni roboczej (uwaga zaćmienie będzie teraz budować inaczej Gradle linii poleceń).

2

W trosce o ukończenie, skończyło się na zastępowaniu zależności zgodnie z sugestią Lance Java. To podejście ma następujące zalety:

  • Nie wymaga oprogramowania innej firmy.
  • Czy IDE jest niezależny. Nie majstrujemy bezpośrednio w pliku .classpath, pozwalamy na obsługę wtyczki Eclipse (lub dowolnej innej wtyczki IDE).
  • Inne wtyczki mogą uzyskać dostęp do rzeczywistej zależności, której chcemy użyć.

Jednakże, istnieje kilka pułapek z takim podejściem:

+0

Popraw mnie, jeśli się mylę, ale to rozwiązanie działa tylko w ramach projektu gradle. Co się stanie, jeśli będę musiał zastąpić zależność projektem obszaru roboczego, który nie jest częścią kompilacji gradle? – user1482710

Powiązane problemy