Мне нужна небольшая помощь в выяснении наилучшего способа (или лучшей практики) для организации моего проекта Android. Для простоты, скажем, мое рабочее пространство Eclipse для Android - C:\Android\Projects\
. Внутри этой папки мне нравится отделять приложения от библиотек, и у меня есть две другие папки, C:\Android\Projects\Applications
и C:\Android\Projects\Components
.
Для одного проекта я клонировал библиотеку из GitHub в папку Components
, скажем, C:\Android\Projects\Componentes\SampleLib
(внутри этой папки есть две папки TheLib
и TheLibExample
). И мое приложение создано в C:\Android\Projects\Applications\MyTestApp
. Затем я включил библиотеку в приложение, следуя этим инструкциям .
Теперь, допустим, я хочу использовать GitHub, чтобы поделиться своим приложением с сообществом разработчиков открытого кода. Я создам репозиторий и перенесу все из C:\Android\Projects\Applications\MyTestApp
в какой-нибудь репозиторий.
Если кто-то захочет раскрутить мое приложение или даже помочь мне, ему понадобится библиотека для его компиляции и запуска, которая не включена в сам мой проект. Файл default.properties
будет иметь что-то вроде android.library.reference.1=../Components/SampleLib/TheLib
, и кто-то должен будет тоже вручную клонировать эту библиотеку, и ему нужно будет поместить ее в тот же относительный путь, иначе это испортит контроль над исходным кодом для моего приложения.
Единственный способ решить эту проблему - организовать свое рабочее пространство следующим образом:
C:\Android\Projects\Applications\MyTestApp\TheApp
C:\Android\Projects\Applications\MyTestApp\TheLib
C:\Android\Projects\Componentes\SampleLib
И мой репозиторий должен быть заполнен содержимым C:\Android\Projects\Applications\MyTestApp\
.
Но что происходит, когда библиотека обновляется? Я не могу просто вытащить новые изменения, мне нужно скопировать их в папку TheLib
. В предыдущей организации папок это не понадобилось, поскольку я ссылался на исходный клонированный репозиторий, а не на его копию.
Что мне тогда делать? Должен ли я перейти с первого варианта и позволить любому разветвляющемуся моему проекту иметь дело с зависимостью библиотеки по своему усмотрению, или мне следует пойти со вторым и дать всем больше работы, синхронизируя две папки, когда исходная папка извлекает изменения из хранилище