Ho bisogno di un piccolo aiuto per capire il modo migliore (o migliore pratica) per organizzare il mio progetto Android. Per semplicità, diciamo che il mio spazio di lavoro Eclipse per Android è C:\Android\Projects\
. All'interno di questa cartella mi piace separare le applicazioni dalle librerie e ho altre due cartelle, C:\Android\Projects\Applications
e C:\Android\Projects\Components
.Come dovrei organizzare il controllo del codice sorgente per i progetti Android comprese le librerie?
Per un progetto che ho clonato una libreria da GitHub nella cartella Components
, diciamo C:\Android\Projects\Componentes\SampleLib
(all'interno della cartella ci sono due cartelle TheLib
e TheLibExample
). E la mia app è stata creata in C:\Android\Projects\Applications\MyTestApp
. Quindi ho incluso la libreria nell'app seguendo il numero these instructions.
Ora diciamo che voglio usare GitHub per condividere la mia app con la comunità open source. Creerò un repository e trasferirò tutto da C:\Android\Projects\Applications\MyTestApp
in qualche repository.
Se qualcuno vuole bifare la mia app o addirittura aiutarmi, avrà bisogno della libreria per compilarla ed eseguirla, che non è inclusa nel mio stesso progetto. Il file default.properties
avrà qualcosa come android.library.reference.1=../Components/SampleLib/TheLib
e che qualcuno dovrà clonare manualmente anche quella libreria e che dovrà collocarlo nello stesso percorso relativo, altrimenti rovinerebbe il controllo del codice sorgente per la mia app.
L'unico modo che posso pensare di risolvere questo problema è quello di organizzare il mio lavoro in questo modo:
C:\Android\Projects\Applications\MyTestApp\TheApp
C:\Android\Projects\Applications\MyTestApp\TheLib
C:\Android\Projects\Componentes\SampleLib
E il mio repository deve essere riempito con il contenuto da C:\Android\Projects\Applications\MyTestApp\
.
Ma cosa succede quando la libreria viene aggiornata? Non posso semplicemente inserire le nuove modifiche, ho bisogno di copiarle nella cartella TheLib
. Nella precedente organizzazione della cartella questo non sarebbe stato necessario poiché stavo facendo riferimento al repository clonato originale e non a una copia.
Cosa devo fare allora? Dovrei andare con l'opzione uno e lasciare che chiunque bifichino il mio progetto si occupi della dipendenza della libreria come meglio crede, o dovrei andare con la seconda e dare a tutti più lavoro mantenendo sincronizzate due cartelle quando quella originale estrae le modifiche dal suo repository?
come hai risolto questo problema con bitbucket? bitbucket non aggiunge la mia libreria nel progetto – Erum