2013-04-25 17 views
5

Recentemente ho voluto adottare submodules da GIT con i miei progetti Android ma incappato in alcuni problemi.Più progetti Android con lo stesso sottomodulo GIT

Backstory

ho più progetti, ma molti usano la stessa libreria esterna (Android biblioteca-progetto), al fine di rendere il più pulito GIT e rendere il GIT per ogni progetto di tutti gli elementi necessari che però di utilizzare i sottomoduli GIT per il progetto di libreria Android. Questa parte funziona bene ho ottenuto la libreria inclusa come sottomodulo per i progetti.

Problema

Ma Android utilizza queste biblioteche progetti che è fondamentalmente un progetto di regolare che viene aggiunto al progetto e posso solo aggiungere lo stesso progetto, una volta in Eclipse. Quindi, se ho bisogno di lavorare su più di un progetto alla volta, devo usare più istanze di Eclipse/area di lavoro invece di usare Eclipse in modo regolare.

C'è un modo per avere solo 1 istanza del mio progetto di libreria in eclissi e allo stesso tempo tutti i progetti fanno riferimento alle rispettive librerie? O qualche altro suggerimento su come dovrei gestirlo?

Qualsiasi aiuto è molto apprezzato

+0

Ho avuto a che fare con un problema simile me stesso, chiedendomi come procedere. Hai scoperto qualcosa? –

+0

@ScottW non ancora niente ... – Warpzit

+0

[Ho postato questa domanda, lol] (http://stackoverflow.com/questions/16325205/how-do-i-manage-git-submodule-subprojects-in-eclipse) –

risposta

2

È non può avere il progetto di libreria come una singola istanza in Eclipse per il seguente motivo.

  • Ogni progetto che utilizza la libreria può fare riferimento a una versione diversa della libreria. Poiché il tuo sottomodulo è un checkout fisico (directory di lavoro) di una particolare versione, non è possibile rappresentare più uno stato del repository in un determinato momento.

Soluzione:

  1. Preparare una posizione "server" per il progetto biblioteca. È sufficiente creare un clone utilizzando git clone --bare.
  2. Clona il progetto di libreria "server" nell'area di lavoro.
  3. Prefisso il progetto di libreria in modo che rifletta il nome del progetto principale in cui è utilizzato.
  4. Ripeti i passaggi 2 e 3 per ciascun progetto principale su cui è necessario che la libreria lavori.
  5. Ogni volta che si apportano modifiche nel progetto di libreria, creare un ramo di funzionalità. In ogni progetto principale, considera se la nuova funzionalità potrebbe essere utile o difficile. Se non ti va, ovviamente devi riscrivere la funzione appena creata. Al termine, aggiornare la versione della libreria (non essere timido utilizzando i tag con Semantic Versioning).
+0

Questo funzionerebbe sì, ma non sarò in grado di avere ogni progetto contenente tutto il materiale necessario ... quindi è una soluzione non ottimale. In complesso, la ragione di ciò era di rendere ogni git contenente il progetto e tutto il materiale necessario. – Warpzit

Problemi correlati