2017-06-20 1 views
4

Je voudrais être plus efficace en développant des faisceaux OSGi utilisant karaf.Processus de développement efficace Karaf

mon processus idéal sera:

  1. karaf en arrière-plan
  2. déployer tous mes paquets et dépendances (script)
  3. make karaf regarder mon maven repo local pour tout changement dans mes bottes
  4. package
  5. & installer des objets individuels et laissez karaf les recharger

Actuellement j'utilise l'assemblage de karaf pour la production, mais cela ne me permet pas de regarder le repo maven local, donc chaque cycle de construction nécessite d'arrêter et d'assembler la distribution karaf complète et de la lancer de nouveau lentement et inefficace.

J'ai aussi une fonctionnalité décrivant toutes les dépendances, ce sera génial si je peux le réutiliser au lieu de déclarer toutes les dépendances manuellement.

des suggestions comment accomplir ceci avec karaf?

p.s. ce processus peut-il être fait en utilisant Gradle?

Répondre

2

Le moyen le plus simple est de démarrer karaf et d'installer votre fonction. Bien sûr, vous pouvez écrire cette partie. Puis, vous tapez bundle:watch *. Cela surveille votre repo maven local pour les changements dans les paquets SNAPSHOT.

Si vous faites maintenant mvn clean install sur un projet de groupe individuel, l'ensemble est automatiquement mis à jour.

Vous pouvez également démarrer karaf avec karaf debug. Cela démarre karaf avec le débogage à distance activé. Donc, vous pouvez simplement faire une session de débogage avec eclipse sur le port 5005. Cela fonctionne aussi bien avec bundle: regarder ci-dessus. Pendant le débogage, vous pouvez modifier votre code et lancer mvn clean install sur le projet bundle et poursuivre le débogage avec l'ensemble modifié. Bien sûr, vous perdez l'état du paquet modifié, mais le reste du système reste inchangé. Notez cependant que bundle: watch ne fonctionne que si vos bundles ne sont pas déployés dans le dossier système de karaf. Donc, si vous démarrez une distribution karaf personnalisée, vos paquets ne seront pas mis à jour. Cela peut être contourné en supprimant simplement ces fichiers du répertoire système car ils seront ensuite récupérés à partir du repo maven local. C'est très pratique lorsque vous travaillez sur le propre code de Karaf.

+0

merci! donc si j'utilise une installation de fonctionnalité cela fonctionnera aussi avec la montre? Je n'ai pas besoin d'aller installer chaque paquet manuellement? – Gadi

+0

Oui .. cela fonctionne très bien avec l'installation par fonctionnalité. –

+0

Je n'ai pas accepté cette réponse parce que je n'arrive pas à faire fonctionner ça. watch * ne semble pas recharger les bundles déployés dans le repo maven local. – Gadi