2014-04-23 7 views
0

J'ai un serveur JRebel + Tomcat exécuté via IntelliJ sur mon ordinateur Work (* NIX), et de temps en temps j'adorerais avoir JRebel update Classes/Resources quand je suis chez moi (* NIX) machine connectée à distance via SSH.Recharger les classes via ssh sur le serveur jordan-julien intellij-run

par exemple.

home $ ssh work 
work $ cd workspace/foo/bar/baz 
work $ hey-jrebel-go-update-classes 

Je poignée aujourd'hui par VNC'ing dans ma machine de travail, puis dans l'exécution IntelliJ « Classes de mise à jour et des ressources » sur ma course instance Tomcat, reconnectez-vous ensuite.

C'est plutôt idiot puisque je suis déjà SSH. Y at-il un moyen de lancer ce processus via la ligne de commande?

Répondre

1

JRebel dispose d'installations de Remoting, qui peut être utilisé pour synchroniser les modifications à l'ordinateur distant via HTTP. Pour cela, vous devez activer JRebel sur Tomcat distant (via -javaagent: jrebel.jar) et activer JRebel remote plugin qui crée un point de terminaison HTTP pour négocier avec le plugin IDE. -Drebel.remoting_plugin = true fera l'affaire.

Pour plus d'informations, vous pouvez consulter le didacticiel pour setting up Remoting with IntelliJ IDEA and Tomcat. Sinon, sans l'accès distant, vous pouvez déployer l'application avec le fichier de configuration rebel.xml qui pointera vers l'emplacement où se trouve l'application éclatée et JRebel chargera Tomcat de charger les ressources à partir de cet emplacement spécifique, afin que vous puissiez juste synchroniser de IntelliJ à cet emplacement distant via SSH. JRebel fonctionnera alors comme d'habitude - en surveillant les changements dans l'emplacement spécifié et en rechargeant les classes/ressources dès qu'ils sont utilisés dans l'application.

+0

J'ai modifié ma réponse pour être plus clair.IntelliJ/Tomcat/JRebel tournent ensemble sur mon ordinateur de travail, et je suis à la maison, SSH dans. La configuration actuelle utilise un fichier rebel.xml mais les changements de classe ne se propagent pas automatiquement. C'est peut-être un paramètre de configuration rebel.xml que je ne vois pas. – inanutshellus

+0

Dans ce cas, il est préférable d'activer la journalisation JRebel sur le poste de travail et de vérifier si JRebel surveille réellement quoi que ce soit. Vous pouvez envoyer le fichier journal à l'assistance JRebel et ils vous aideront à le faire. –

+0

Il semble que JRebel fasse la bonne chose actuellement. Ce qui veut dire que dans IntelliJ, je lui dis explicitement de mettre à jour Tomcat (ctrl/cmd-f10) - il ne se déploie pas seulement à chaque fois que j'enregistre un fichier. Donc, étant donné que c'est le cas, puisque je suis dans une session terminal bash, pas dans l'interface graphique de MacOS, je ne sais pas comment dire à JRebel "ok,/now/go update". – inanutshellus

0

Je ne suis pas complètement en train de suivre ce que vous essayez de faire. Mais si je vous suis, vous voulez essentiellement passer une commande à un serveur distant via SSH et, idéalement, lancer à partir d'IntelliJ IDEA. Vous pouvez soit:

  1. Utilisez la fenêtre Terminal (Outils> Ouvrir Terminal), démarrer une connexion ssh, puis exécutez la commande manuellement.
  2. Créer une Outil externe définition qui utilise plink (ou un équivalent) pour exécuter la commande ssh sur votre serveur distant. Vous pouvez créer une définition d'outil externe dans Paramètres> [Paramètres IDE]> Outils externes. Voir la capture d'écran ci-dessous pour un exemple. La définition (ou son groupe si vous utilisez des groupes pour ajouter une structure à vos définitions) apparaîtra dans le menu Outil. Vous pouvez également mapper un raccourci via Paramètres> [Paramètres IDE]> Keymap> Outils externes. Pour une séquence de commandes multiples, vous pouvez
    • écrire un script local qu'il fait et utiliser la définition outil externe pour lancer le script
    • écrire un script à distance et utiliser le plink dans une définition outil externe pour l'exécuter
    • mettez les commandes à exécuter dans un fichier local et utilisez plink -m {file} pour les exécuter.

enter image description here

Questions connexes