Wer bisher manuell durch alle poms eines größeren Projekts gegangen ist, den könnte folgender Aufruf interessieren:
mvn versions:set -DnewVersion=1.2.3-SNAPSHOT -DgenerateBackupPoms=false
Somit werden einfach die Versionen in allen poms umgesetzt und man muss dann nur noch einchecken.
Kategorie: Subversion
Hinweise zur Arbeit mit dem Versionsverwaltungssystem SVN
Verteilte Versionierungssysteme – Übersicht
Heute durch Zufall im Newsreader gefunden und für gut befunden – eine kleine Übersicht von täglichen Aufgaben in den verteilten Versionierungssystemen
- Bazaar
- Mercurial
- Git
Eclipse Indigo einrichten – SVN/Maven
Die Zwischenzeit konnte ich nutzen, um meine virtuelle Maschine und das Äpfelchen auf den aktuellsten Stand zu bringen.
Um ins SVN der Firma zu kommen, muss wieder ein wenig manuell nachgearbeitet werden.
Zuerst das aktuelle 4.4/Luna-Eclipse runterziehen:
- Eclipse Luna 4.4 – Standard
- Eclipse Luna 4.4 – JavaDevelopers
Dann noch Subversion installieren:
- Mac: Collab.net-Gedöns installieren – man muss sich leider anmelden
- Ubuntu: aptitude install subversion libsvn-java
Eclipse-Plugins installieren
Über den Eclipse-Marktplatz die folgenden Plugins nachinstallieren und dann jeweils Eclipse neu starten:
- Subclipse (Tigris) – SVN-Provider (nicht: Subversion nehmen sonst kommt alles durcheinander)
- M2 – Maven2Eclipse – Eclipse-Maven-Integration
- Maven Development Tools
- Moreunit
- EclEmma
- EGit
- Gradle
Eclipse-Konfiguration nachziehen
Die JavaHL-Bibliothek liegt nicht an Standardpfaden, weshalb die Eclipse-Konfigurationsdatei eclipse.ini angepasst werden muss – die Zeile muss eingefügt werden:
- Mac: -Djava.library.path=/opt/subversion/lib
- Ubuntu: -Djava.library.path=/usr/lib/jni
Sobald die Konfig nachgezogen ist, sieht man bei einem Neustart im Einstellungsfenster zu Team/SVN, dass JavaHL zur Auswahl steht. Dann funzt alles.
Ansonsten nicht vergessen, dass das Repo mit svn+ssh in der URL eingebunden werden muss.
So – nun also mit der neuen Version am Start und ready 2 rumble 🙂
Die Alternative mittels MacPorts die Bindings sowie eine aktuelle SVN-Version auf dem Mac zu installieren haben nicht funktioniert, weil MacPorts mit Schmerzen abbrach.
Hilfereiche Links sind ebenfalls:
- JavaHL-Infoseite von Subclipse
- Eclipse-Downloadseite – aktuell: Indigo – Eclipse IDE for Java EE Developers (MacOSX)
- Update 20110819: die Einstellungen für Eclipse können auch in einer rc-Datei abgelegt werden
- Update 20140814: Ubuntu 14.04 hat neue Pfade zu den SVN-javahl-Erweiterungen und die Eclipse.ini muss anders aussehen:
ORIGINAL: -Djava.library.path=/usr/lib/jni
NEU: -Djava.library.path=/usr/lib/x86_64-linux-gnu/jni
SVN ignore – manuell editieren
Manchmal will man auf der Konsole fix was ändern an den SVN-ignore-Einstellungen oder falls grad kein Eclipse mit installiertem SVN zur Hand ist:
svn propset svn:ignore 'build' .
Fügt das Verzeichnis oder die Datei build dem svn ignore hinzu.
Wenn es für das aktuelle Verzeichnis bereits ein svn ignore gibt, hilft:
svn propedit svn:ignore .
So kann man fix auf der Konsole aufräumen. Wichtig ist, dass man danach mittels svn commit
natürlich das betroffene Verzeichnis eincheckt.
Externe Quellen:
Keychain – bequemes Starten in allen Konsolen
Oftmals benötigt man ja bestehende SSH- oder GPG-Agenten, um als Entwickler bequem auf Repositories zugreifen zu könne. Eine minimalinvasive Systemintegration will her – hier eine Integration in die .bashrc:
keychain
. "$HOME/.keychain/HIER_KOMMT_DER_RECHNERNAME_REIN-sh"
ssh-add -l &>/dev/null || ssh-add
Dann kann man schnell beliebige Konsolen starten oder Konsolentabs öffnen und muss nicht seine SSH-Passwörter eingeben. Dies ist nur 1x beim initialien Anmelden ans System nötig.
Aber: manche Ubuntuversionen starten bereits bei jeder bestehenden X-Session einen SSH-agent, der dann zu Ärger führen kann.
Subversionbaum umhängen
Wenn man aus Versehen falsch ausgecheckt hat und eigentlich – z.B. beim Bauen mittels Maven2 – einen anderen SVN-Pfad braucht, hilft folgendes Kommando im Wurzelverzeichnis des ausgecheckten Projekts:
svn switch --relocate
https://repo.foo.de/projects/example-project/trunk
svn+ssh://repo.foo.de/projects/example-project/trunk
Zieht den alten über https ausgecheckten Projektbaum nach svn+ssh um!