Конвертация из Eclipse в Android Studio с сохранением истории

Андрей Волков

Андрей Волков

Системное, сетевое администрирование +DBA. И немного программист!))  Профиль автора.

Конвертация проекта Eclipse в Android Studio с историейПроблема

Как показано в этой статье, механизм импорта Android Studio создает новый проект в новом каталоге, что приводит к перерыву в истории контроля версий. Вы хотите вместо этого навсегда преобразовать проект из Eclipse в Android Studio, но не теряя годы ценной истории управления версиями.

Решение

Один из подходов заключается в использовании команды move программы управ­ления версиями для реструктуризации проекта на месте, в форме, которую может понять среда Studio/Gradle.

Среда Eclipse больше не может обрабатывать проект после того, как он был перестроен; кажется, нет способа сообщить ему новое местоположе­ние для манифеста Android и файлов ресурсов. Если вы хотите исполь­зовать обе среды IDE, см. вот эту статью вместо рецепта, который вы сейчас читаете.

Обсуждение

Процесс будет сильно отличаться в зависимости от используемой системы управле­ния исходным кодом (source code management — SCM). Одной из старейших широко используемых систем SCM была CVS (Concurrent Versions System). Система CVS не под­держивала перемещение файлов, поэтому, если ваш проект попрежнему находится в системе CVS (или RCS или SCCS, двух еще более старых систем SCM), необходимо сна­чала перенести его в Git и научиться его использовать, если вы действительно хотите сохранить историю. Я знаю, что этот процесс может работать хорошо, потому что мои общедоступные хранилища GitHub содержат некоторые файлы с датами модификации за десять лет до написания Git. Соответственно этот пример предполагает, что у вас есть проект Eclipse Android в системе Git SCM. И я расскажу о шагах в виде командной строки Unix/Linux/macOS, потому что это наиболее сжатый формат. Поймите, что это только общее руководство; ваши действия, безусловно, будут другими!

 

План А: перемещение файлов

Я использовал этот подход для конвертации приложения для платформы Android, состоящего из 30 файлов Java и многочисленных файлов ресурсов, из формата Eclipse в формат Android Studio; я получил это решение через час или два, оставив историю версий нетронутой.

Во-первых, создайте копию, чтобы, если преобразование слишком сильно испор­тится, можно было удалить все это и начать все сначала (пуристы Git могут утверждать, что вы должны просто использовать ветку, но это мой способ сделать это):

$ cp -r ~/git/myproject /tmp/myproject
$ cd /tmp/myproject

Теперь нужно преобразовать структуру проекта. Среда Eclipse использовала простую папку src, тогда как современные инструменты построения, такие как Maven и Gradle (см. рецепт 1.10), используют структуру, такую как src/main/java. Если у вас автономные (Java без Android) модульные тесты, они мо­гут находиться в папке с именем test, которая должна стать src/test/java. Кро­ме того, папка ресурсов (res) и файл манифеста Android должны перейти в папку src/main:

 

$ rm -fr bin build gen target # Start with a cleanup
$ mkdir -p src/main/java
$ mkdir -p src/test/java
$ git mv src/com src/main/java
$ git mv test/com src/test/java/
$ git mv res src/main/
$ git mv AndroidManifest.xml src/main/
$ rmdir test

Следующим шагом будет преобразование информации о зависимостях из файла .classpath или файла pom.xml в файл build.gradle:

$ cat ../__SomeExistingStudioProject__/build.gradle pom.xml > build.gradle
$ vi build.gradle # Объединяем зависимости вручную
$ git rm -f pom.xml
$ git add build.gradle

Создайте файл local.properties, содержащий путь к пакету Android SDK на ва­шем компьютере-разработчике, используя, например, одну из следующих функций:

 

$ cp ../__SomeExistingStudioProject__/local.properties .
$ echo 'sdk.dir=/Users/ian/android-sdk-macosx' > local.properties

Теперь вам нужно скопировать несколько файлов из существующего проекта Android Studio: по крайней мере, gradlew (для Unix/Linux/macOS) и/или gradlew.bat (для Windows cmd.exe).

Если в вашем проекте нет файла .gitignore, создайте его и добавьте к нему файл local.properties:

$ echo local.properties >> .gitignore

Теперь попробуйте создать проект, набрав команду gradlew или открыв его в сре­де Android Studio. Затем переделайте его, пока он не заработает. Когда вам станет удобно, выполните команду git commit. Когда вы действительно достигнете цели, выполните команду git push.

 

План Б: Перемещение файлов в новый проект

Альтернативный подход заключается в следующем. Я не проверял его сам, но он кажется более простым.

  1. Создайте новый проект, используя мастер Studio New Project.
  2. Скопируйте файлы из вашего существующего проекта в новый проект, исполь­зуя предыдущие команды перемещения в качестве руководства.
  3. Скопируйте историю изменений в новый проект:
$ cp -r oldProject/.git newProject/.git
  1. Проверив, что проект организован нормально, сохраните изменения, предпо­ложив, что репозиторий Git распознает перемещенные файлы (обычно так и бывает):
$ git commit -m "Reorganize project for Android Studio"
  1. Перестройте его при необходимости, пока он не будет работать правильно.
  2. Выполните команду git commit, чтобы сохранить все последние изменения, а затем выполните команду git push.

 

Вас заинтересует / Intresting for you:

Преобразование проекта Eclipse...
Преобразование проекта Eclipse... 1283 просмотров Андрей Волков Wed, 07 Nov 2018, 10:53:54
Настройка Eclipse с помощью An...
Настройка Eclipse с помощью An... 1327 просмотров Боба Sat, 17 Nov 2018, 05:53:44
Создание приложения с помощью ...
Создание приложения с помощью ... 3683 просмотров Илья Дергунов Mon, 05 Nov 2018, 12:47:50
Работа над Android-приложением...
Работа над Android-приложением... 1278 просмотров Боба Wed, 14 Nov 2018, 15:37:25
Войдите чтобы комментировать