2016-11-22 2 views
0

Я готовлю сценарий сборки Gradle для своего приложения для Android. Перед запуском задачи сборки я должен изменить имя основного класса и, таким образом, изменить импорт в каждом * .java-файле.Переименовать классы в gradle

Например, если сейчас мой основной класс com.company.myApp, так как пакеты в каждом файле Java импортируются в следующим образом: import com.company.myApp.pacakge. * и когда я переименовать основной класс com.company.newName Я также должен изменить импорт: импорт com.comapny.newName.package.*.

Я начинаю с Gradle, но я пытался найти информацию об эквиваленте функции replace(), и я нашел теневой плагин, но он работает с JAR-файлами. Существует еще одна душа, которая использует ReplaceTokens, но она работает с токенами, а имя класса не является символическим.

Есть ли способ сделать это с помощью Gradle?

+0

«Перед запуском задачи сборки я должен изменить имя основного класса и, следовательно, изменить импорт в каждый * .java-файл» - почему? – CommonsWare

+0

@CommonsWare для создания приложения с правильным идентификатором. Я думаю, что нашел решение: http: //stackoverflow.com/questions/17465353/how-to-replace-a-string-for-a-buildvariant-with-gradle-in-android-studio – Blady214

+1

У вас нет необходимо переименовать или повторно упаковать классы «для создания приложения с правильным идентификатором». Вы можете установить 'applicationId' в свой файл' build.gradle' для создания приложения с правильным идентификатором, основанный на вкусе продукта. – CommonsWare

ответ

1

Для других с аналогичной проблемой изменение любой строки на другую с помощью Gradle довольно просто. Я решил решить эту проблему:

copy { 

    from "src_tmp" 
    into "src" 

    filter { 
     String line -> line.replaceAll("com.company.app", "com.new.string") 
    } 

} 
Смежные вопросы