2013-05-01 11 views
18

(Falls es darauf ankommt, sind diese Java Android-Projekte)Wie verwalte ich Unterprojekte von Git Submodulen in Eclipse?

Projekt A ein Bibliotheksprojekt ist.

Projekt B ist abhängig von A. Für die Einfachheit des Projektmanagements auf der ganzen Linie für andere Menschen statt nur A ist in B über ein Git-Submodul enthalten.

Das bedeutet, wenn ich Änderungen an beide A und B machen wollen, muss ich folgendes:

  1. Projekt A selbst
  2. Projekt B
  3. B 's Submodul von A, nennen wir es A '. Gleicher Code, gleicher Projektname, anderer Speicherort auf der Festplatte.

Im Idealfall würde Ich mag die folgenden Bedingungen in der Lage sein zu erfüllen:

  1. Lage sein, A sich direkt innerhalb von Eclipse zu ändern.
  2. In der Lage zu ändern B und haben es bauen, Referenzieren A ', alle in Eclipse.
  3. Ich brauche nicht wirklich A ' als ein importiertes Projekt/keine Notwendigkeit, es zu ändern, aber ich möchte, dass es automatisch seine JAR-Datei erstellen und haben, dass durch B verwiesen werden.

Was ich versucht habe:

  1. einfach beide Import A und A‘: Geh nicht, weil Eclipse-nicht zwei Projekte mit dem gleichen Namen importieren. Ich kann den Namen auch nicht einfach ändern, weil es ein Submodul ist; würde das tun müssen jedes Git Update, inakzeptabel.
  2. Externe Bibliotheksreferenz zu A ' hinzufügen, halten Sie es aus Eclipse vollständig heraus: eigentlich nicht schlecht einer Lösung, aber erfordert mindestens einen externen Build von der Befehlszeile (mit ant), bevor es funktioniert. ..nicht die bequemste.
  3. eine Quellen-Link tun: Nicht die sauberste weil A (und anschließend A‘) in ihnen mehrere Quellordner haben, so würde ich jedes Mal aktualisieren, muss ich hinzufügen oder Quellordner in entfernen A.Ich würde lieber das Glas direkt verwenden.

Gibt es eine Möglichkeit, dies in Eclipse alle zu halten, oder soll ich etwas tun, wie # 2, aber mit einem zusätzlichen externen Build-Befehl ant auf A‘ anrufen?

+0

Warum importieren Sie nicht B und A ', aber nicht A? – karmakaze

+0

Weil # 1 besagt, dass ich in der Lage sein möchte, ** A ** leicht zu ändern/ändern. –

+0

Ich habe die Anforderung in Frage gestellt. Ja, Sie möchten das Projekt A ändern können, aber warum nicht nur das Projekt A, das sich am Standort A befindet? – karmakaze

Antwort

-1

Verwenden Sie einfach ein Projekt Build-System, um Ihre Abhängigkeiten zu verfolgen (das ist, wofür sie gut sind).

Ich würde vorschlagen, gradle (vorzugsweise IMHO, aber welche besser passt auf Ihren Kontext passt) oder maven, beide können Teilprojekte ziemlich gut behandeln und können die Eclipse-Konfiguration für Sie generieren.

+2

Beispiel und weitere Spezifikationen wären willkommen. – Warpzit

+0

@Warpzit, ich gebe ihm einen anderen Ansatz für das Problem, beide Tools sind gut dokumentiert zB (aus maven Getting Started Dokumentation): http://maven.apache.org/guides/getting-started/index.html# How_do_I_build_more_than_one_project_at_once –

+0

Generieren .. welche Eclipse-Konfiguration? Kann ich diese magische Konfiguration erst manuell bekommen? Dann werde ich darüber nachdenken. –

1

Ich habe eine ähnliche Situation. Importieren Sie B als existierendes (androides) Projekt in eclipse, nachdem Sie es geklont haben. Stellen Sie sicher, dass Projekt A initialisiert und aktualisiert wird (via Git).

Jetzt Datei-> importieren Sie ein bestehendes Projekt (Android, wenn A ein Android-Projekt ist) und gehen Sie zu wo das Submodul Ein Projekt in Ihrem Projekt B ist und fügen Sie es hinzu.

Jetzt haben Sie zwei separate Projekte in Eclipse. Sie können beide Projekte ändern, und alles wird unter Projekt B sein, da sich dort beide Projekte befinden.

0

Da dies speziell für Android ist, haben Sie in Android-Bibliotheken untersucht?

In meinem Fall habe ich eine kostenlose (B) und eine kostenpflichtige (C) Version meiner App. Beide teilen eine gemeinsame Codebasis (A). In Eclipse mache ich A eine Android-Bibliothek und sowohl B als auch C benutzen diese Bibliothek und alle 3 sind separate Git-Repos. Mit diesem Setup sind Änderungen, die ich in A mache, automatisch in B und C verfügbar und ich muss nur eine Codebasis für jedes Projekt pflegen. Keine ausgefallenen Build-Skripte/-Konfigurationen.

Ich denke, diese Art von Einfachheit ist, was Sie wollten? Entschuldigung, wenn ich die Frage falsch verstanden habe.

0

Ich bin mir nicht sicher, ob ich das Setup richtig verstanden habe:

Projekt A: src
+ /projecta.jar (binär ein Projekt)

Projekt B:/src
+/lib/Projekt A/src als Submodul
+ /lib/projecta.jar (binär von Projekt A)

..now Sie AA‘ändern und es kompilieren, wollen sie testen, bevor/commiting drängen, nicht wahr?
ist es in Ordnung für Sie, nur das Glas in B zu haben, oder brauchen Sie die Quelle innerhalb von Projekt B aktualisiert zu A '?

ersten Fall: haben eine Ameise Datei Projekt A kompilieren in und implementieren es auch nach B, dass ant-Datei nicht Teil des Projekts a, es ist nur eine lokale Abhilfe (Nutzungs es in der Ameise Blick haben von eclipse)

Skizze:

<property name="projectb.libdir" value="..."/> set appropriate place in project B 

<javac fromdir="./src" todir="./build" ...><fileset ... /></javac> 

<jar /> from build to projecta.jar 

<copy /> projecta.jar to projectb.libdir 

Alternative ist eine .jardesc in eclipse zu erstellen, so können Sie ausführen "erstellen jar" auf Rechtsklick.

ist das was du machen wolltest?

0

Eclipse Mars Milestone 5 (4.5.0M5) hat Multiprojekt-Unterstützung. Sie müssen nur "Vorhandenes Projekt" aus dem Unterordner importieren.

Verwandte Themen