Potrzebuję pomocy w ustaleniu najlepszego sposobu (lub najlepszej praktyki) do zorganizowania mojego projektu Android. Dla uproszczenia, powiedzmy, że mój obszar roboczy Eclipse dla Androida to C:\Android\Projects\
. W tym folderze lubię oddzielać aplikacje od bibliotek i mam dwa inne foldery: C:\Android\Projects\Applications
i C:\Android\Projects\Components
.Jak zorganizować kontrolę nad źródłami dla projektów Androida, w tym bibliotek?
Dla jednego projektu Mam sklonowanego bibliotekę z GitHub do folderu Components
, powiedzmy C:\Android\Projects\Componentes\SampleLib
(wewnątrz tego folderu tam dwa foldery TheLib
i TheLibExample
). A moja aplikacja jest tworzona w C:\Android\Projects\Applications\MyTestApp
. Następnie umieściłem bibliotekę w aplikacji, wykonując polecenie these instructions.
Załóżmy teraz, że chcę użyć GitHub do udostępnienia mojej aplikacji społeczności open source. Utworzę repozytorium i przekażę wszystko od C:\Android\Projects\Applications\MyTestApp
do jakiegoś repozytorium.
Jeśli ktoś chce rozwidlić moją aplikację lub nawet mi pomóc, będzie potrzebował biblioteki do jej skompilowania i uruchomienia, co nie jest zawarte w moim projekcie. Plik default.properties
będzie miał coś takiego, jak android.library.reference.1=../Components/SampleLib/TheLib
i że ktoś będzie musiał ręcznie sklonować tę bibliotekę, a on będzie musiał umieścić ją w tej samej względnej ścieżce, w przeciwnym razie zepsułoby to kontrolę nad moją aplikacją.
Jedynym sposobem mogę myśleć o rozwiązaniu tego problemu jest zorganizować moje miejsce pracy tak:
C:\Android\Projects\Applications\MyTestApp\TheApp
C:\Android\Projects\Applications\MyTestApp\TheLib
C:\Android\Projects\Componentes\SampleLib
A mój repozytorium powinno być wypełnione treścią z C:\Android\Projects\Applications\MyTestApp\
.
Co się stanie, gdy biblioteka zostanie zaktualizowana? Nie mogę po prostu wyciągnąć nowych zmian, muszę je skopiować do folderu TheLib
. W poprzedniej organizacji folderów nie byłoby to potrzebne, ponieważ odwoływałem się do oryginalnego sklonowanego repozytorium, a nie do kopii.
Co powinienem zrobić? Czy powinienem wybrać opcję 1 i pozwolić każdemu, kto rozwikłuje mój projekt, na radzenie sobie z zależnościami bibliotek, jeśli uznają to za stosowne, czy powinienem pójść z drugim i dać wszystkim więcej pracy, utrzymując synchronizację dwóch folderów, gdy oryginalny wyciągnie zmiany z jego magazyn?
jak rozwiązać ten problem dla bitbucket? Bitbucket nie dodaje mojej biblioteki do projektu – Erum