2013-11-15 20 views
6

Sto sviluppando un set di plugin Cordova. L'implementazione iniziale sarà solo Android, quindi per ora sono interessato a utilizzare ADT in Eclipse per lo sviluppo di plug-in. Ho letto la documentazione e sono stato in grado di completare il primo plugin, ma il flusso di lavoro è un po 'un problema. Non sono riuscito a trovare documenti o strumenti in Cordova che supportino specificamente il flusso di lavoro di sviluppo di plugin. Mi chiedo se sto rendendo più difficile di quanto debba essere? Ecco cosa sto facendo.Flusso di lavoro per lo sviluppo di plugin Cordova/PhoneGap per Android

Il plug-in è configurato in base alle specifiche del plugin cordova. Ho iniziato con la creazione della struttura delle directory e modificare i file in Sublime, così ho qualcosa di simile:

  • $ PLUGIN_ROOT
    • src
      • Android
        • Plugin.java
    • www
      • plugin.js
    • plugin.xml

I set tutto questo con boilerplate e una prima applicazione. Quindi per iniziare i test, ho creato un progetto di Cordova, ha aggiunto la piattaforma Android, aggiunto il mio plug-in e di costruzione:

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

Dopo aver fatto tutto questo, ho importare TestProject/piattaforme/android in ADT e iniziare a modificare Plugin.java e plugin.js, oltre a risorse/www per aggiungere un cablaggio di test.

Ora, dopo aver eseguito tutto nel modo in cui lo desidero, devo copiare manualmente tutti i file modificati (più eventuali file aggiunti) nel posto appropriato sotto $ PLUGIN_ROOT. Voglio anche conservare il mio cablaggio di test, probabilmente in $ PLUGIN_ROOT/test. Non è male la prima volta, ma dopo diverse iterazioni tutto diventa un po 'ingombrante. Sembra anche molto soggetto a errori manualmente, ma non posso davvero usare uno strumento di unione per farlo, perché la struttura della directory è diversa. Potrei scrivere uno script, ma poi aggiungerò altro overhead di manutenzione. Detto questo, al momento sto pianificando di scrivere script per fare questo per ognuno dei plugin che sto per scrivere.

C'è un modo migliore? Mi piacerebbe davvero sentire come gli sviluppatori del plugin cordova gestiscono questo. Grazie.

+0

May so il tuo problema esatto ... –

+0

@ManetiVinay: l'ho spiegato meglio che posso nella mia domanda. Fondamentalmente, il flusso di lavoro di sviluppo che descrivo sopra è scomodo, ma sembra l'unico approccio possibile a causa dell'organizzazione dei file richiesta dalle specifiche del plugin. Spero che ci sia un approccio migliore di quello che sto usando e qualcuno mi dirà di cosa si tratta. – ajh158

+0

Esportare il progetto che è necessario riutilizzare e reimportare e rinominarlo nuovamente ogni volta che si desidera utilizzarlo. –

risposta

3

È necessario uno strumento di compilazione automatica come grunt che monitors la cartella plug-in (ad esempio $ PLUGIN_ROOT) e runs i comandi appropriati Cordova ogni volta che un file appartenenti ai cambiamenti del plugin.

+0

Grazie per la risposta. Sembra che tu stia suggerendo di modificare solo i file in $ PLUGIN_ROOT. Se dovessi adottare questo approccio, non sarei in grado di modificare i file che sono sotto debug, che è quello che sento di dover fare. Forse mi manca qualcosa - in tal caso, ti preghiamo di approfondire il modo in cui il tuo suggerimento potrebbe essere d'aiuto. Avevo preso in considerazione un approccio basato su una versione personalizzata di plugman che creava collegamenti simbolici a tutti i file di plugin quando si esegue 'cordova plugin add', ma ci si rendeva conto che quando si eseguiva 'cordova prepare' si copiano i file reali nella piattaforma directory. – ajh158

+0

In tal caso è meglio lavorare sui file nel progetto e configurare l'attività di grunt-watch per copiare automaticamente sul proprio plug-in master solo i file che devono essere presenti quando cambiano. –

+1

Ti assegnerò la taglia da quando hai avuto il tempo di rispondere e nessun altro l'ha fatto, ma non accetto la risposta. Sebbene sia verosimilmente meglio della copia manuale di tutti i file, richiede comunque un sacco di configurazione e manutenzione manuale su base per-plugin. Se alla fine ottengo risultati migliori del previsto usando l'orologio per grunt (o qualcosa di simile) tornerò e accetterò la tua risposta. Grazie. – ajh158

Problemi correlati