jeudi 13 décembre 2012

[NBPlay] Fonctionnalité de création de projet Play pour NetBeans


Ma première contribution au projet NBPlay a été d'ajouter la fonctionnalité de création de projet Play.

Instinctivement je pensais qu'il me fallait trouver comment exécuter la commande
"play new projectName" via une action de NetBeans.

Mais n'ayant jamais développé pour la plateforme NetBeans, j'ai tout naturellement cherché de la documentation et éventuellement un tutoriel pouvant m'aider.
Bingo ! Je tombe sur le tutoriel NetBeans Project Type Module Tutorial (en anglais).

Les première parties sont dédiées à la définition du type de projet lui même (choses que Geertjan avait déjà reprises pour définir le type de projet Play).
C'est la dernière partie qui m'intéressait tout particulièrement car elle répond exactement au besoin.
Il y est expliqué comment ajouter des "projets exemple" qui serviront de base pour que l'utilisateur puisse créer de nouveaux projets.

L'approche est donc assez différente de ce que j'imaginais mais finalement reflète assez bien les étapes suivies lors de la création de projet avec Play.


Tout d'abord il faut créer le(s) projet(s) qui serviront de template. J'ai donc commencé par créer 3 projets Play (un java, un scala et un vide) en ligne de commande.

Ensuite il est nécessaire que le plugin en développement puisse reconnaitre ces projets (cf les étapes précédentes du tutoriel). Pour NBPlay c'était déjà le cas.

On exécute le projet du plugin, ce qui lance un NetBeans avec lequel on va pouvoir ouvrir le(s) projet(s) que l'on vient de créer. Il faut également ouvrir le projet du plugin.




Pour créer un template de projet, on fait un clic droit sur le package dans lequel on veut le créer : New -> Other -> Module Development et sélectionner Project Template




Sélectionner le projet voulu, puis indiquer les propriétés du template (nom, libellé, package, catégorie).




Le projet sélectionné est alors zippé et ajouté aux sources.

Ces étapes sont à refaire pour chaque template.

Vous pouvez maintenant fermer la deuxième instance de NetBeans.
Si votre projet est un projet NetBeans il vous faudra également fermer puis ré-ouvrir le projet du plugin car le fichier nbproject/private/platform-private.properties a été modifié par la seconde instance de NetBeans et il doit être rechargé par le projet. Cela n'est pas nécessaire si, comme NBPlay, votre projet est un projet maven.


Vous pouvez maintenant ré-exécuter le module pour profiter de la nouvelle fonctionnalité de création de projet.