Ich setze mich gerade ein wenig mit Maven auseinander. Das gesetzte Ziel war eine .war Datei mittels scp auf einen Server zu kopieren.
Dazu benötigt man erst einmal das Ant-Plugin, welches ich in den <build> Teil der pom.xml integriert habe. So, dass beim Aufruf von Run As -> Maven install (ich nutze das m2eclipse Plugin) die neue .war Datei erzeugt und direkt auf den Zielserver kopiert wird.
<plugin>
<artifactid>maven-antrun-plugin</artifactid>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<scp file="..\project\target\myWar.war" todir="user@server:/home/apache-tomcat-6.0.29/webapps" password="pw"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
Allerdings weigerte sich ant beharrlich scp auszuführen, was an der fehlenden jsch Datei lag (vgl. failed to create task or type scp)
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.3:run (install) on project ScoreCards: An Ant BuildException has occured: Problem: failed to create task or type scp
Ich konnte das Problem jedoch beheben indem ich zusätzlich 2 dependencies eingebunden habe.
...
</executions>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.6.5</version>
</dependency>
<dependency>
<groupId>jsch</groupId>
<artifactId>jsch</artifactId>
<version>0.1.25</version>
</dependency>
</dependencies>
</plugin>
Danach wurde der HostKey des Zielservers nicht akzeptiert.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.3:run (install) on project ScoreCards: An Ant BuildException has occured: com.jcraft.jsch.JSchException: reject HostKey: server
Dies lies sich ganz einfach durch das Hinzufügen folgender Zeile in den scp Befehl lösen:
trust="true"
Was mich zum nächsten Problem brachte: Die Authentifizierung schlug fehl.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.3:run (install) on project ScoreCards: An Ant BuildException has occured: com.jcraft.jsch.JSchException: Auth fail
In der Regel bedeutet das zwar, dass Username und/oder Passwort falsch sind. Aber in meinem Fall lag es am Server. In der
/etc/sshd/sshd_config
musste nur PasswordAuthentication yes eingetragen werden. Nach dem Neustart des SSH-Daemon lief dann alles wie am Schnürchen. :)
Übrigens kommt es bei dessen Neustart auf das jeweilige Betriebssystem an. Hier ein paar Beispiele:
Ubuntu Linux
/etc/init.d/ssh restart
Suse linux
/etc/rc.d/sshd restart
Solaris 10
svcadm disable ssh
svcadm enable ssh
Solaris 9 und früher
/etc/init.d/sshd stop
/etc/init.d/sshd start
Fedora und RedHat Linux
/sbin/service sshd restart
Abschließend noch einmal der fertige und funktionsfähige Eintrag in der pom.xml:
<plugin>
<artifactid>maven-antrun-plugin</artifactid>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<scp file="..\project\target\myWar.war" todir="user@server:/home/apache-tomcat-6.0.29/webapps" password="pw" trusted="true"/>
</tasks>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.6.5</version>
</dependency>
<dependency>
<groupId>jsch</groupId>
<artifactId>jsch</artifactId>
<version>0.1.25</version>
</dependency>
</dependencies>
</plugin>
Geschrieben am 09.10.10 um 18:44 Uhr in
Computer |
Keine Kommentare
Tags:
ant,
eclipse,
java,
linux,
maven,
scp,
ssh
Beim Thema XML kommt man praktisch nicht an XPath vorbei. Um so erfreuter bin ich, dass mich Tobias vor kurzem auf das Eclipse Plugin XPathDeveloper aufmerksam gemacht hat. Dieses erleichtert die Fehlersuche und Validierung von XPath Expressions ungemein!
Geschrieben am 26.09.10 um 20:34 Uhr in
Computer |
Keine Kommentare
Tags:
eclipse,
xml
Subversion ist eine feine Sache zur Versionsverwaltung seiner Softwareprojekte. Natürlich gibt es auch dafür das passende Plugin für Eclipse in Form von Subversive bzw. SVN Team Provider und SVN Connector. :)
Mal schauen, ob ich irgendwann auch mal in den Genuss komme CVS auszuprobieren um mir ein Bild zu machen, welches System besser ist.
Geschrieben am 14.05.10 um 19:58 Uhr in
Computer |
Keine Kommentare
Tags:
cvs,
eclipse,
subversion
Ein kleines aber feines Eclipse Plugin um auf die schnelle UML Diagramme zu erzeugen. Nicht unbedingt umwerfend, aber für die meisten Zwecke ausreichend.
www.umlet.com
Geschrieben am 11.05.10 um 18:42 Uhr in
Computer |
1 Kommentar
Tags:
eclipse,
uml
Ob Maven oder Ant muss sicherlich für den jeweiligen Fall entschieden werden. Allerdings bringt Maven in gewissen Bereichen einen Komfort, den Ant leider nicht bieten kann. Und selbstverständlich gibt es mit m2eclipse auch das entsprechende Plugin für die Eclipse Entwicklungsumgebung.
Nach der Installation wird man sofort darauf hingewiesen, dass man ggf. noch ein zwei Einstellungen vornehmen muss:
“The Maven Integration requires that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDK.
Please make sure the -vm option in eclipse.ini is pointing to a JDK and verify that Installed JRE’s are also using JDK installs.”
Dies bedeutet im Detail, dass zum einen in Eclipse unter -> Window -> Preferences -> Java -> Installed JREs ein entsprechender Java Development Kit (JDK) und keine Java Runtime Environment (JRE) eingetragen ist.
Und zum anderen, dass auch in der Datei eclipse.ini darauf verwiesen wird. Dies geschieht mittels des -vm Parameter und der entsprechenden Pfadangabe (z. B. C:/Java/jdk1.6.0_13/bin/javaw.exe), so dass die Datei am Ende circa so aussieht:
-vm
C:/Java/jdk1.6.0_13/bin/javaw.exe
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
Geschrieben am 10.05.10 um 17:25 Uhr in
Computer |
4 Kommentare
Tags:
ant,
eclipse,
java,
maven
Da will man nichtsahnend seine build.xml ausführen und dann so etwas… scp, um das ganze auf seinen Apache Tomcat zu schieben, verweigert seinen Dienst und man erhält so eine Fehlermeldung:
C:\eclipse\workspaces\…\build.xml:
Problem: failed to create task or type scp
Cause: Could not load a dependent class com/jcraft/jsch/UserInfo
It is not enough to have Ant’s optional JARs
you need the JAR files that the optional tasks depend upon.
Ant’s optional task dependencies are listed in the manual.
Action: Determine what extra JAR files are needed, and place them in one of:
-C:\eclipse\installs\3.3\eclipse\plugins\org.apache.ant_1.7.0.v200706080842\lib
-C:\Documents and Settings\vdb\.ant\lib
-a directory added on the command line with the -lib argument
Do not panic, this is a common problem.
The commonest cause is a missing JAR.
This is not a bug; it is a configuration problem
Am besten gefällt mir daran das “Do not Panic…”. ;-) Und in der Tat ist das Problem schnell behoben. Man braucht nur die entsprechende jsch.jar (aktuell jsch-0.1.42.jar) für ant, welche man auf JCraft bekommt. Diese dann in das, in der Fehlermeldung angegebene lib-Verzeichnis kopiert und schon sollte alles funktionieren.
Und wenn nicht, dann stellt sich Eclipse nur ein bisschen doof an. Dann muss man die .jar noch zusätzlich im Eclipse unter -> Window -> Preferences -> Ant -> Runtime -> Classpath -> Ant Home Entries (Default) mittels -> Add External JARs… hinzufügen. Und schon klappt alles. :)
Geschrieben am 24.04.10 um 18:45 Uhr in
Computer |
Keine Kommentare
Tags:
ant,
eclipse,
java