Java 7 Compiler in Maven

Möchte man Java 7 in einem Maven Projekt verwenden muss man dem Maven Compiler Plugin das auch mitteilen. Eine Beispielkonfiguration gibts in diesem Artikel.

Lang ist’s her dass ich hier was technisches gebracht hab. Die Fotographie und einige private Dinge haben mich davon ab gehalten. Doch die Zeit der dürre ist vorbei, ich hab wieder begonnen meine Erfahrungen für den Blog festzuhalten :D

Möchte man Java 7 in einem Maven Projekt verwenden muss man dem Maven Compiler Plugin das auch mitteilen. Dieses würde atm. ansonsten versuchen das Projekt mit gutem alten Java 5 zu bauen.

Dazu muss das Plugin über folgende Angaben in der pom.xml umkonfiguriert werden:

<build>
    
    <plugins>
        
        <plugin>
            <groupid>org.apache.maven.plugins</groupid>
            <artifactid>maven-compiler-plugin</artifactid>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <showdeprecation>true</showdeprecation>
                <showwarnings>true</showwarnings>
                <executable>${env.JAVA_7_HOME}/bin/javac</executable>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>

Natürlich muss der Entwickler dafür die Umgebugnsvariable JAVA_7_HOME auf den Rootordner des JDKs der Version 7 linken.

Weitere Infos gibts auf der Seite des Maven Compiler Plugin. Unter Examples gibt es auch den Punkt “Compile Using A Different JDK” der die Vorgehenswiese dabei analog beschreibt. Dabei wird auch eine Möglichkeit aufgezeigt wie der Entwickler den Path JAVA_7_HOME in seiner Maven settings setzen kann.

Have Fun mit Java 7

Ähnliche Artikel:

Code Style Verse – Implementation Patterns

Originalbeschreibung auf Youtube: The central message of Kent Beck’s book, Implementation Patterns, set to Dr. Seuss-style verse.

But the shocker that might leave you scratching your head, is that actual code is less written than read!

Wie erkläre ich das Video am besten? Mit der Originalbeschreibung auf Youtube: The central message of Kent Beck’s book, Implementation Patterns, set to Dr. Seuss-style verse.

Ähnliche Artikel:

SCM: CVS, SVN, Git hilfreich auch für den einzelnen Entwickler

SCM – Source Control Management wie SVN oder Git können sich auch für einzelne Entwickler bezahlt machen. Ein paar Alternativen werden hier vorgestellt.

Wie das Leben so spielt

Vor kurzem konnte ich wieder am eigenen Leib verspüren, wie wertvoll Source Controll Management sein kann. Bei der Auftrennung eines Softwareprojekts habe ich Klassen eines Maven Moduls, in ein anderes neues Modul verschoben, oder besser verschieben lassen. Eclipse bietet dafür eine “Move…” Funktion. Beim Test der Auftrennung fand das Hauptprojekt jedoch das neue Modul nicht mehr. Wie immer zuerst auf der falschen Fährte, habe ich erst den Build Prozess in Zweifel gezogen und Maven des Missmanagements verdächtigt. Als sich dort keine Unstimmigkeit finden lies, habe ich doch tatsächlich in die Verzeichnisse des neuen Modul gesehen. Die Lehr aus der Geschicht, traue Automatismen nicht. Die Klassen waren zwar erfolgreich aus dem ursprünglichen Modul entfernt worden, scheinen aber nie im neuen Modul angelegt worden zu sein. Die Arbeit der letzten Woche im Kübel!

Wäre da nicht mein SCM! So war der Missstand in ein paar Klicks erledigt, indem ich die fehlenden Klassen aus dem Projekt-SVN wieder herstellte. Als hätte ich eine Vorahnung gehabt, sicherte ich den gesamten veränderten Code über das Versionierungstool, bevor ich die Klassen von Eclipse verschieben lies.

Ob good old CVS, weitverbreitetes SVN, das aktuelle iSCM: Git oder sonstige Alternativen wie zB Mercurial oder Perforce, sie alle hätten mir in dieser Situation den Hals gerettet. Neben dem kollaborativen Nutzen, der sich ist vor allem bei größeren Projekten bemerkbar macht, ist vor allem die Sicherung der Arbeitsleistung ein wesentlicher Aspekt von Versionsverwaltungs Software, solange man einen wichtigen Punkt nicht vergisst: Man muss Änderungen auch einchecken, und das regelmäßig!

Versionsverwaltung für alle

Es gibt zahlreiche Dienstleister die Versionsverwaltungssoftware gegen mehr oder weniger Geld zur Verfügung stellen. Hier möchte ich drei der bekanntesten vorstellen.

Sourceforge

In meinem Fall konnte ich auf die Strukturen des auf Open Source Projekte spezialisierten Sourceforge bauen und meinen Code dort ins SVN committen, aber auch die alternativen Versionsverwaltungstools bietet Sourceforge zur Auswahl an. Für Open Source Projekte findet man hier neben einer oder mehreren Versionsverwaltungen alles was ein Projekt sich wünschen kann, und das umsonst.

http://www.sourceforge.net

Google Code

Etwas abgespeckt im Funktionsumfang, im Vergleich zu Sourceforge, ist Google Code, welches jedoch immer noch ein solides Rundumpaket zum Projekthosting anbietet.

http://code.google.com

Github

Der Renner aktuell, vorallem unter Ruby und Javascript Entwicklern, ist Github, welches sich, wie der Name aufzeigt, auf Git spezialisert hat. Auch Github bietet für Open Source Projekte seine Dienste gratis an. Der Code ist dann jederzeit für alle zugänglich und kann für alle geforked werden. Für einen monatlich zu entrichtenden Aufpreis sind hier jedoch private Repositories zu erhalten.

http://www.github.com

Host it yourself

Subversion, Git und Co können meist kostenlos bezogen werden und auch selbst gehostet werden. Hat man einen eigenen Server muss man seinen Sourcecode nicht mehr in die Hände dritter geben. Ohne Server rentiert es sich immernoch die Versionsverwaltung lokal auf dem Entwicklungsrechner abzuhandeln. Wenn auch meist mit ein paar Einschränkungen in der Handhabung.

http://subversion.tigris.org/

http://git-scm.com/

Happy coding!

Ähnliche Artikel:

Upgrading MyEclipse – Fehlerhafte Aktivierung

Aktivierungsprobleme beim Upgrade von MyEclipse auf Version 9.0a können an Altlasten der vorherigen Installation liegen. Wie man diese bereinigt liest man hier!

Der Sachverhalt ist schnell erklärt: MyEclipse wurde auf Windows XP von einer veralteten Version auf die neueste Version (aktuell 9.0a) upgedated. Dazu wurde der neueste Installer von der Homepage von MyEclipsehttp://www.myeclipseide.com/ gezogen und die Installationsroutine aufgerufen. Nach Abschluss der Installation fordert MyEclipse den User zur Bekanntgabe der Lizenzdaten (Subscriber und Subscriber Key) auf. Nach bekanntgabe dieser Daten muss MyEclipse noch aktiviert werden. Dazu bietet einem die Software z.B. die Möglichkeit dies automatisch mittels bestehender Verbindung zum Internet. Dafür hat man 5 Tage Zeit.

Leider hatte MyEclipse die erfolgreiche Aktivierung beim nächsten Neustart der Anwendung schon vergessen. Wenn man nicht standardmäßig als Admin User unterwegs ist wie ich, installiert man seine Programme auch nicht mit dem selben User mit dem man sie nutzt. Im Userverzeichnis (C:\Dokumente und Einstellungen\<USERNAME>\ war die .myeclipse.properties, in der die LICENSEE und der LICENSE_KEY vermerkt sind, noch von der vorherigen Installation vorhanden, doch es fand sich kein Aktivierungsschlüssel in dieser Datei. Die Unterschiedlichen Nutzer als Problem geortete war die Suche nach einem entsprechenden Properties-File für den Admin User der nächste logische Schritt. Doch diese konnte nicht gefunden werden. 1 zu 1 zusammengezählt, 10 als Ergebnis erhalten, war nun klar wo der Hase langläuft:

.myeclipse.properties löschen (oder backupen und aus dem Userverzeichnis entfernen)

Von den Altlasten befreit fand fand MyEclipse beim nächsten Start seine bereits durchgeführte Aktivierung. Scheinbar hatte die vorahndene .properties Datei noch Nebenwirkungen auf MyEclipse, das darin nach den Lizenzdaten suchte und natürlich keinen Aktivierungsschlüssel fand.

Happy Coding!

Ähnliche Artikel:

Kleine Java Tips: Einfach über eine Map iterieren

Ist man von früher gewohnt über das KeySet zu iterieren um alle Elemente einer Map aufzurufen, wird hier ein neuer Weg über das EntrySet und foreach gezeigt.

Hat man eine Map und muss nicht nur mit einem Element sondern mit allen Elementen die die Map beinhaltet weiterarbeiten, ist ein gebräuchlicher Weg über den KeySet der Map zu iterieren

for (Iterator it = map.keySet().iterator(); it.hasNext(); ){
    Object key = it.next();
    Object vlaue = map.get(key);
}

Seit Java 1.5, und damit eigentlich schon recht lange, gibt es jedoch einen bequemeren Weg. Die foreach Schleife in Java funktioniert mit allen Objekten die Iterable implementieren, und somit auch mit dem EntrySet einer Map.

for (Entry e : map.entrySet()){
    e.getKey();
    e.getValue();
}

So bekommt man zu einem viel übersichlicherem Code, der obendrein noch äußerst geschmeidig wirkt :D

Ganz hilfreich ist dabei der im TryCatchFinally Blog veröffentlcihte Artikel, der Zeigt wie man dafür ein schnell zu verwendendes Template in Eclipse anlegt:

http://blubberbart.blogspot.com/2011/04/eclipse-code-template-uber-eine-map.html

Happy Coding!

Ähnliche Artikel: