Gradle + Buildship - Wechsle die Abhängigkeit zwischen JAR und Projekten

8

Ich habe Probleme, Buildship für Eclipse so zu konfigurieren, wie ich es möchte. Ich habe derzeit & gt; 50 Projekte werden immer in Eclipse geöffnet, aber ich möchte nur die Projekte verwenden, an denen ich gerade aktiv bin, und die anderen Projekte verwenden ein Maven-Repository, um ihre Abhängigkeit aufzulösen.

Sagen wir, dass ProjectA (das eine Hauptdatei enthält) von ProjectB (einem Bibliotheksprojekt) abhängig ist. Wenn ProjectB in Eclipse geöffnet ist, möchte ich, dass ProjectA ProjectB direkt verwendet. Eine Änderung des Codes in ProjectB würde sich beim Ausführen von ProjectA bemerkbar machen. Wenn ProjectB jedoch geschlossen ist, möchte ich, dass ProjectA die ProjectB-JAR verwendet, die sich im Maven-Repository befindet, das in der Datei build.gradle erwähnt wird.

Das Verhalten, über das ich spreche, ist detailliert hier .

Gibt es eine Möglichkeit, das mit Buildship zu tun? Oder sollte ich ein anderes Gradle Eclipse-Plugin verwenden?

    
CydrickT 16.09.2015, 12:19
quelle

2 Antworten

8
  1. In Gradle 3.1 wurde eine neue Composite Build-Unterstützung hinzugefügt. Diese Funktion verändert das Spiel und macht es einfach, an mehreren Projekten gleichzeitig zu arbeiten.

  2. Sie können Regeln für die Abhängigkeitsersetzung verwenden, um Repository-Abhängigkeiten mit anderen auszutauschen lokale Projektabhängigkeiten.

  3. Wenn sich jedes Projekt in seinem eigenen separaten git / subversion-Repository befindet, können Sie prezi pride verwenden, um den "Stolz" zu verwalten von Projekten. Sie könnten das (dynamisch generierte) Multi-Modul Build in Buildship importieren.

  4. Wenn Sie das Eclipse-Plug-in anstelle der Buildship verwenden möchten, verwenden Sie das whenMerged oder withXml Hooks, um die generierten .classpath -Dateien so zu optimieren, dass sie auf die Projekte in Ihrem Arbeitsbereich verweisen (Hinweis: Eclipse wird nun anders als die Befehlszeile in Großbuchstaben erstellt).

lance-java 16.09.2015, 13:17
quelle
2

Aus Gründen der Vollständigkeit ging ich mit der Abhängigkeitsersetzung wie von Lance Java vorgeschlagen. Dieser Ansatz hat die folgenden Vorteile:

  • Benötigt keine Software von Drittanbietern.
  • Ist IDE unabhängig. Wir basteln nicht direkt mit der .classpath -Datei, wir lassen das Eclipse-Plugin (oder jedes andere IDE-Plugin) damit umgehen.
  • Andere Plugins können auf die tatsächliche Abhängigkeit zugreifen, die wir verwenden möchten.

Allerdings gibt es einige Probleme mit diesem Ansatz:

CydrickT 21.09.2015 11:51
quelle