Der schnellste Weg zum Java-EE-Projekt: Forge.

Java-EE-Projekte sind irgendwie langweilig, zumindest, wenn es um das initiale Aufsetzen geht. Mit Maven und den Artefakten von Adam Bien ist das schon ein wenig einfacher geworden, aber irgendwie bleibt es unhandlich. Um diesem Problem zu begegnen und die Handhabbarkeit verschiedenartiger Java-Projekte zu verbessern, ist JBoss Forge entstanden.

vorlesen Druckansicht 4 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Markus Eisele

Java-EE-Projekte sind irgendwie langweilig. Also zumindest, wenn es um das initiale Aufsetzen geht. Und wir alle machen es immer und immer wieder. Mit Maven und den Artefakten von Adam Bien ist das schon ein wenig einfacher geworden, aber irgendwie bleibt es unhandlich. Spätestens dann, wenn mal schnell was dazu oder gar weg muss.

Um diesem Problem zu begegnen und die Handhabbarkeit verschiedenartiger Java-Projekte zu verbessern, ist JBoss Forge entstanden. Gestartet als Kommandozeilenwerkzeug, ist es heute bereits in Eclipse, den JBoss Developer Tools und seit Kurzem auch in IntelliJ integriert. Forge ĂĽberzeugt mit seinen monatlichen Releases und sorgt so fĂĽr eine Menge Weiterentwicklung. Seit drei Tagen ist die 2.8.0.Final verfĂĽgbar.

Am schnellsten startet man mit dem direkten Download der kommandozeilenVersion (ZIP, 64 MByre). Die wird einfach in ein beliebiges Verzeichnis entpackt. Dieses Verzeichnis seit ab jetzt FORGE_HOME. Und damit sind als nächstes FORGE_HOME/bin zum Pfad hinzuzufügen, und natürlich muss auch die Umgebungsvariable JAVA_HOME gesetzt sein. Ist beides erfolgt, startet man Forge:

Forge Meldung

(Bild: Markus Eisele)

Mit wenigen weiteren Befehlen wird zunächst ein Projekt erzeugt:

[demo]$ project-new --named heise
***SUCCESS*** Project named 'heise' has been created.

Dann eine JPA-Entität "Speaker" hinzugefügt":

[heise]$ jpa-new-entity --named Speaker
***SUCCESS*** Persistence (JPA) is installed.
***SUCCESS*** Entity org.heise.model.Speaker created

Sowie drei neue Attribute ergänzt:

[Speaker.java]$ jpa-new-field --named vorname
***SUCCESS*** Field vorname created
[Speaker.java]$ jpa-new-field --named nachname
***SUCCESS*** Field nachname created
[Speaker.java]$ jpa-new-field --named twitter
***SUCCESS*** Field twitter created

Das Ergebnis kann man sich jederzeit in der Ăśbersicht mit dem Unix-artigen Befehl "ls" anschauen:

[Speaker.java]$ ls
[fields]
id::java.lang.Long
nachname::java.lang.String
twitter::java.lang.String
version::int
vorname::java.lang.String
[methods]
equals(java.lang.Object)::boolean
getId()::java.lang.Long
getNachname()::java.lang.String
getTwitter()::java.lang.String
getVersion()::int
getVorname()::java.lang.String
hashCode()::int
setId(java.lang.Long)::void
setNachname(java.lang.String)::void
setTwitter(java.lang.String)::void
setVersion(int)::void
setVorname(java.lang.String)::void
toString()::java.lang.String

Was jetzt noch fehlt, ist eindeutig eine Oberfläche. Ein entsprechendes Grundgerüst "Scaffold" kann Forge natürlich auch erstellen:

scaffold-generate --targets net.eisele.demo.model.Speaker

Nach der Auswahl der entsprechenden Entität ist es dann auch schon fertig. Schaut man sich jetzt jetzt alles auf Dateiebene an, findet man ein einfaches Maven-Projekt. In den Klassen gibt es keinen Hinweis auf Forge. In der IDE der Wahl lässt es sich einfach öffnen oder auch per Kommandozeile bauen und natürlich auf einem beliebigen Java-EE-6-Server deployen. Ich hab es mit dem WildFly probiert:

Heise Mini Anwendung mit Forge

(Bild: Markus Eisele)

Forge kann viel mehr! Ein Blick in die Dokumentation hilft hier weiter. Es gibt natĂĽrlich auch die Community, die bei Fragen gerne weiterhilft. ()