2013-11-15 2 views
6

Я разрабатываю набор плагинов Cordova. Первоначальная реализация будет только Android, поэтому на данный момент я заинтересован в возможности использовать ADT в Eclipse для разработки плагинов. Я прочитал документацию и получил первый плагин, но рабочий процесс немного боль. Я не мог найти никаких документов или инструментов в Кордове, которые специально поддерживают рабочий процесс разработки плагинов. Интересно, я делаю это сложнее, чем нужно? Вот что я делаю.Рабочий процесс разработки плагинов Cordova/PhoneGap для Android

Плагин настроен в соответствии со спецификацией плагина cordova. Я начал с создания структуры каталогов и редактирования файлов в Sublime, поэтому у меня есть что-то вроде:

  • $ PLUGIN_ROOT
    • ЦСИ
      • андроида
        • Plugin.java
    • www
      • plugin.js
    • plugin.xml

Я установил все, что с шаблонным и первоначальной реализацией. Затем, чтобы начать тестирование, я создал проект Cordova, добавил андроид платформу, добавил мой плагин и построен:

cordova create testProject 
cd testProject 
cordova platform add android 
cordova plugin add $PLUGIN_ROOT 
cordova build 
cordova run 

После всего этого, я импортировать TestProject/платформы/андроид в ADT и начать редактирование Plugin.java и plugin.js, а также активы/www, чтобы добавить тестовый жгут.

Теперь, после того, как все работает так, как я этого хочу, мне нужно вручную скопировать все измененные файлы (плюс любые добавленные мной файлы) обратно в соответствующее место под $ PLUGIN_ROOT. Я также хочу сохранить свой тестовый жгут, возможно, в $ PLUGIN_ROOT/test. Это не так уж плохо в первый раз, но после нескольких итераций все становится немного громоздким. Это также кажется очень склонным к ошибкам делать это вручную, но я не могу использовать инструмент слияния, чтобы сделать это для меня, потому что структура каталогов отличается. Я мог бы написать сценарий, но потом я добавлю дополнительные служебные накладные расходы. При этом я сейчас планирую писать сценарии, чтобы сделать это для каждого из плагинов, которые я буду писать.

Есть ли лучший способ? Мне бы очень хотелось услышать, как это делают разработчики плагинов cordova. Благодарю.

+0

Могу ли я узнать вашу точную проблему ... –

+0

@ManetiVinay: Я объяснил это так же хорошо, как и в моем вопросе. В принципе, рабочий процесс разработки, описанный выше, неудобен, но, похоже, единственный возможный подход из-за файловой организации, требуемой спецификацией плагина. Я надеюсь, что есть подход, который лучше, чем тот, который я использую, и кто-то скажет мне, что это такое. – ajh158

+0

Экспортируйте проект, который вам нужно повторно использовать и повторно использовать, и переименовать его снова, когда вы хотите его использовать. –

ответ

3

Вам нужен автоматизированный инструмент сборки, как grunt что monitors папку плагинов (например, $ PLUGIN_ROOT) и runs соответствующие Cordova команд всякий раз, когда файл, принадлежащие к изменениям плагина.

+0

Спасибо, что ответили. Похоже, вы предлагаете мне редактировать файлы только в $ PLUGIN_ROOT. Если бы я принял этот подход, я не смог бы отредактировать файлы, находящиеся под отладкой, и это то, что я чувствую, что мне нужно это сделать. Может быть, я что-то упустил - если да, пожалуйста, уточните, как поможет ваше предложение. Я рассмотрел подход, основанный на пользовательской версии плагина, который создал символические ссылки на все файлы плагинов, когда вы добавляете плагин cordova add ', но понял, что когда вы будете готовить «кордору», он скопирует настоящие файлы на платформу каталог. – ajh158

+0

В этом случае лучше работать с файлами в вашем проекте и настраивать задачу grunt-watch, чтобы автоматически копировать в ваш мастер плагина только файлы, которые должны быть там, когда они меняются. –

+1

Я награжу вас щедростью, так как вы нашли время, чтобы ответить, и никто другой не сделал, но я не принимаю ответ. Хотя это, возможно, лучше, чем ручное копирование всех файлов, по-прежнему требуется много ручной настройки и обслуживания для каждого плагина. Если я в конечном итоге получаю лучшие результаты, чем ожидалось, используя часы grunt (или что-то подобное), я вернусь и приму ваш ответ. Благодарю. – ajh158

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