Necesito ayuda para encontrar la mejor forma (o la mejor práctica) para organizar mi proyecto de Android. Por simplicidad, digamos que mi área de trabajo de Eclipse para Android es C:\Android\Projects\
. Dentro de esa carpeta me gusta separar las aplicaciones de las bibliotecas y tengo otras dos carpetas, C:\Android\Projects\Applications
y C:\Android\Projects\Components
.¿Cómo debo organizar el control de código fuente para proyectos de Android, incluidas las bibliotecas?
Para un proyecto que he clonado a partir de una biblioteca de GitHub en la carpeta Components
, digamos C:\Android\Projects\Componentes\SampleLib
(dentro de esa carpeta hay dos carpetas TheLib
y TheLibExample
). Y mi aplicación se creó en C:\Android\Projects\Applications\MyTestApp
. Luego incluí la biblioteca en la aplicación al seguir these instructions.
Ahora digamos que quiero usar GitHub para compartir mi aplicación con la comunidad de código abierto. Crearé un repositorio e insertaré todo desde C:\Android\Projects\Applications\MyTestApp
en algún repositorio.
Si alguien quiere bifurcar mi aplicación o incluso ayudarme, necesitará la biblioteca para compilarla y ejecutarla, lo cual no está incluido en mi proyecto. El archivo default.properties
tendrá algo así como android.library.reference.1=../Components/SampleLib/TheLib
y alguien tendrá que clonar manualmente esa biblioteca también y él tendría que colocarla en la misma ruta relativa, de lo contrario, se arruinaría el control de fuente de mi aplicación.
La única manera que puedo pensar en la solución de este problema consiste en organizar mi espacio de trabajo de la siguiente manera:
C:\Android\Projects\Applications\MyTestApp\TheApp
C:\Android\Projects\Applications\MyTestApp\TheLib
C:\Android\Projects\Componentes\SampleLib
Y mi repositorio debe ser llenado con el contenido de C:\Android\Projects\Applications\MyTestApp\
.
Pero, ¿qué ocurre cuando se actualiza la biblioteca? No puedo simplemente extraer los nuevos cambios, necesito copiarlos en la carpeta TheLib
. En la organización de carpetas anterior esto no sería necesario ya que estaba haciendo referencia al repositorio clonado original y no a una copia.
¿Qué debo hacer entonces? ¿Debo ir con la opción uno y permitir que cualquiera que forking mi proyecto se ocupe de la dependencia de la biblioteca como lo consideren apropiado, o debería ir con la segunda y darles más trabajo a todos manteniendo dos carpetas sincronizadas cuando la original extrae los cambios de la ¿repositorio?
¿Cómo resolvió este problema para bitbucket? bitbucket no agrega mi biblioteca en el proyecto – Erum