мне нужна небольшая помощь в определении наилучшего способа (или лучшей практики) организации моего 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
. В предыдущей организации папок это не понадобится, так как я ссылался на оригинальное клонированное хранилище, а не на копию.
Что мне тогда делать? Должен ли я выбрать первый вариант и позволить кому-нибудь, кто откажется от моего проекта, иметь дело с библиотечной зависимостью так, как он посчитает нужным, или я должен выбрать второй вариант и дать всем больше работы, синхронизируя две папки, когда оригинальная извлекает изменения из своего репозитория?