Ich habe an einem Java-Projekt auf meinem lokalen Rechner mit Eclipse gearbeitet. Ich versuche, es auf einem entfernten Rechner auszuführen. Der entfernte Rechner ist ein Cluster, der unter Linux läuft. Im Moment habe ich das entfernte Laufwerk gemountet und bearbeite die entfernte Dateikopie über Eclipse. Ich war jedoch auf der Suche nach etwas Stabilerem. Gibt es eine Möglichkeit, dies nahtlos über Eclipse zu tun, d. h. jedes Mal, wenn ich das Projekt ausführe, wird es auf dem entfernten Rechner ausgeführt?
Antworten
Zu viele Anzeigen?- Setzen Sie den Ausgabeordner Ihres Projekts auf den Remote-Ordner, den Sie gemountet haben (unter Project Properties->Java Build Path).
- Dann externes Tool ausführen: ssh user@rometesite -c "java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n Main"
- Starten Sie in eclipse eine entfernte Java-Anwendung (Port 4000)
siehe http://www.ibm.com/developerworks/opensource/library/os-eclipse-javadebug/index.html für detailliertere Informationen zum Remote-Debugging.
Target Management/Remote System Explorer bietet Plugins, um ein entferntes Verzeichnis mit Ihrem Projekt synchron zu halten. Siehe http://www.eclipse.org/tm/
Um Ihr Programm aus der Ferne zu starten, müssen Sie wahrscheinlich eine Startkonfiguration für externe Tools einrichten (über das Menü Ausführen>Externe Tools) und ein Programm wie ssh verwenden, um Ihre Java-Anwendung aus der Ferne auf dem Linux-Cluster zu starten.
Hier ist eine tolle Anleitung dazu: http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fdebug%2Fref-execution_environments.htm und diese ist auch nützlich: http://java.dzone.com/articles/how-debug-remote-java-applicat
Das klingt nach einer großartigen Situation für eine kontinuierliche Integration Lösung. Haben Sie die Einrichtung von CruiseControl ? Mir ist klar, dass das für einen einzelnen Entwickler, der an einer Sache arbeitet, zu viel sein könnte. Und wenn Sie eine JAR-Datei nicht auf den entfernten Rechner verschieben wollen, werden Sie wahrscheinlich auch keine Lust dazu haben.
Aber die kontinuierliche Integration ist die Mühe wert, sobald sie eingerichtet ist. Neben der automatisierten Bereitstellung (um die es hier geht) erhalten Sie eine Debug-/Testumgebung, die jeder in Ihrer Gruppe nutzen kann. Außerdem zwingt es Sie dazu, die Probleme mit der Paketierung und dem Deployment im Voraus zu lösen, was zwar keinen Spaß macht, Sie aber einen großen Schritt näher an einen wirklich iterativen Entwicklungsprozess bringt.