2016-07-22 14 views
0

Zwei Gradle Git-Projekte müssen mit der Eclipse-IDE im selben Repository erstellt werden. Projekt A hängt von einer Drittanbieter-Bibliothek (ein JAR, Quellcode, Javadoc und Natives) und Projekt B ist abhängig von Projekt A.Müssen Abhängigkeiten sowohl über die Eclipse-GUI als auch über die Gradle-Konfigurationsdateien hinzugefügt werden?

Ohne Gradle würden beide Projekte erstellt und Git würde mit Project Explorer > [Project Name] > Team > Share Project aktiviert werden. Dann würden Abhängigkeiten über Project Explorer > [Project Name] > Build Path > Configure Build Path, gefolgt von Projects > Add und Libraries > Add External JARs hinzugefügt (was auch die Angabe der Speicherorte des zugehörigen Quellcodes, Javadoc und Natives ermöglichen würde). Dies würde die automatische Codevervollständigung von Projekt A von Projekt B sowie Quellcode und Javadoc-Integration in Eclipse ermöglichen.

Mit Gradle sollten die settings.gradle oder build.gradle Dateien manuell bearbeitet werden, ohne Abhängigkeiten durch die Eclipse GUI hinzufügen, oder müssen beide gleichzeitig verwendet werden? Zusätzlich wie funktioniert dieser Effekt die versteckten Dateien sollten von Git indiziert werden (.project, .classpath, .settings, .gradle)?

Wie ist dieses Setup durch Eclipse und Gradle?

Antwort

0

Wenn Sie ein Build-Tool wie Gradle (oder Maven) verwenden, wird davon ausgegangen, dass das Build-Tool für die Konfiguration von Projektabhängigkeiten und Klassenpfaden zuständig ist.

Diese Art von Konflikten mit der Eclipse-Benutzeroberfläche ist so aufgebaut, dass Sie Klassenpfad/Abhängigkeiten über eine eigene Benutzeroberfläche verwalten können.

Die Eclipse-Benutzeroberfläche steuert jedoch nur, was Eclipse als Klassenpfad verwendet, wenn der Eclipse-JDT-Compiler Ihren Code kompiliert ... innerhalb Eclipse.

Wenn Sie die Dinge auf diese Weise ändern, wird Gradle diese Abhängigkeiten nicht kennen und der Build wird nicht funktionieren.

Ja, das auf jeden Fall ist verwirrend :-)

Die richtige Sache ist, Ihre Abhängigkeiten und Projektkonfiguration vollständig durch gradle zu tun verwalten. Das bedeutet, die Build.gradle und settings.gradle zu editieren.

Die Tools (BuildShip oder STS Gradle Tools) bieten eine "Brücke", um Eclipse-Projekte konform mit Ihrem Build zu konfigurieren.

Zum Beispiel bieten sie einen 'Update Project' oder 'Refresh Abhängigkeiten' Befehl im Projekt Kontextmenü.

Auch wenn Sie Gradle-Werkzeuge nicht verwenden, gilt dies auch. Sie würden dann Gradle des ‚ecplise‘ Plugin verwenden und einen Befehl wie

gradle cleanEclipse eclipse 

in das Eclipse-Projekt Config aus dem Build Config zu generieren laufen.Importieren Sie dann das Projekt in Eclipse, wie von Gradle konfiguriert. Auch in diesem Fall wäre es eine schlechte Idee, Eclipse UI zu verwenden, um Änderungen am Build-Pfad vorzunehmen, da es letztendlich das gleiche Problem hat. Änderungen, die Sie an diesen generierten Dateien vornehmen, können Dinge in Eclipse kompilieren, aber Gradle kennt Sie nicht alles verändert. Und das nächste Mal, wenn Sie gradle cleanEclipse eclipse ausführen, sind Ihre Änderungen auch weggeblasen.

In Bezug auf Ihre speziellen Fragen:

sollte die settings.gradle oder build.gradle Dateien manuell bearbeitet werden ...

Ja.

... ohne Abhängigkeiten durch die Eclipse GUI Hinzufügen ...

Ja.

... oder müssen beide gleichzeitig verwendet werden?

Nein, konfigurieren Sie nur Dinge in Großbuchstaben. 'Synch' ihn dann mit etwas Werkzeug (BuildShip/STS Gradle/gradle cleanEclipse eclipse)

Wie funktioniert dieser Effekt die versteckten Dateien sollten von Git indiziert werden (.project, .classpath, .settings, .gradle) zu verdunkeln ?

Allgemeine Faustregel. Indizieren Sie nur den Inhalt, der das Verhalten von Gradle definiert (es kann einige Ausnahmen geben, aber versuchen Sie im Allgemeinen, diese zu minimieren, nur wenn Sie einen guten Grund haben).

also nicht kraft in git setzen diese 'Eclipse-Metadaten'

  • .settings
  • .project
  • .classpath

in git setzen Sie: die gradle Wrapper und seine Eigenschaftendatei.

Gradle hat auch einen .gradle Ordner. Es gehört zu Großbuchstaben, nicht zur Finsternis, aber es sind Caches und Dinge, die "flüchtig" sind. Du willst diese nicht auch in git.

+0

** Weitere Einzelheiten wurden zu meiner Frage oben hinzugefügt. ** Um zu bestätigen, wie können Quellenanhang, Javadoc-Speicherort und nativer Bibliotheksort einer abhängigen Bibliothek angegeben werden. Muss all dies auch nur über die Gradle-Konfigurationsdateien und nicht über die Eclipse-GUI festgelegt werden? – pm79080

+0

Wenn Sie ein GRADLE-Tool wie "STS Gradle Tooling" oder "BuildShip" verwenden, wird es Quell-Anhänge automatisch herunterladen. Wenn sie nicht automatisch angezeigt werden, könnte Gravel sie nicht finden. Für Ihre detailliertere Frage. Ich denke, Sie sollten besser eine neue Frage stellen und sich genau darüber informieren, welches Werkzeug Sie verwenden. Nicht alle Tools funktionieren genau so. Benutzt du BuildShip? STS Gradle? Etwas anderes? Stellen Sie eine Frage dazu spezifisch. – Kris

Verwandte Themen