<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>javathreads.de &#187; Maven</title>
	<atom:link href="http://javathreads.de/tag/maven/feed/" rel="self" type="application/rss+xml" />
	<link>http://javathreads.de</link>
	<description>Blog rund um Java und Web Entwicklung</description>
	<lastBuildDate>Wed, 02 Nov 2011 10:37:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tutorial: Mit Java EE 6 unter Eclipse Helios und mit Maven Unterst&#252;tzung starten</title>
		<link>http://javathreads.de/2011/05/tutorial-mit-java-ee-6-unter-eclipse-helios-und-mit-maven-unterstuetzung-starten/</link>
		<comments>http://javathreads.de/2011/05/tutorial-mit-java-ee-6-unter-eclipse-helios-und-mit-maven-unterstuetzung-starten/#comments</comments>
		<pubDate>Fri, 13 May 2011 21:47:07 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[CDI]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Java EE 6]]></category>
		<category><![CDATA[JBoss Tools]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=2557</guid>
		<description><![CDATA[Ziel des Tutorials
Am Ende dieses Tutorials ist ein deploytes Java EE 6 Projekt mit JSF 2, CDI, EJB 3.1 und JPA 2 auf dem JBoss 6 vorhanden und aufrufbar. Dabei wird die Eclipse WTP Untest&#252;tzung funktionieren, der JBoss direkt aus Eclipse heraus gestartet und Maven als Build Tool verwendet werden.



Kleine Anmerkung vorab: Nicht von der [...]]]></description>
			<content:encoded><![CDATA[<h3>Ziel des Tutorials</h3>
<p>Am Ende dieses Tutorials ist ein deploytes Java EE 6 Projekt mit JSF 2, CDI, EJB 3.1 und JPA 2 auf dem JBoss 6 vorhanden und aufrufbar. Dabei wird die Eclipse WTP Untest&#252;tzung funktionieren, der JBoss direkt aus Eclipse heraus gestartet und Maven als Build Tool verwendet werden.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseWTPHotDeploymentBrowser.jpg" alt="" title="Eclipse WTP Hot Deployment - Browser" width="630" height="233" class="alignnone size-full wp-image-2768" />
</div>
<p>Kleine Anmerkung vorab: Nicht von der L&#228;nge des Tutorials abschrecken lassen &#8211; es sind eigentlich nur sehr viele Bilder. Kennt man die Technologien und Tools dauert das Erstellen dieses Projekts nur wenige Minuten.</p>
<p>Aufbau des Tutorials:</p>
<ul class="gliederung">
<li>
<a href="#SoftwareUndTools">Herunterladen der notwendigen Software und Tools</a></p>
<ul class="subGliederung">
<li><a href="#SoftwareUndToolsEclipse">Eclipse herunterladen<a/></li>
<li><a href="#SoftwareUndToolsJBoss">JBoss AS herunterladen</a></li>
<li><a href="#SoftwareUndToolsMaven">Maven herunterladen</a></li>
</ul>
</li>
<li><a href="#EclipseKonfigurieren">Eclipse konfigurieren</a>
<ul class="subGliederung">
<li><a href="#EclipseKonfigurierenJBossTools">JBoss Tools</a></li>
<li><a href="#EclipseKonfigurierenJBossServerRuntime">JBoss 6 AS Server Runtime</a></li>
<li><a href="#EclipseKonfigurierenMaven">Maven</a></li>
<li><a href="#EclipseKonfigurierenMavenExtrasWTP">Maven Extras &#8211; WTP </a></li>
</ul>
<li><a href="#JavaEE6Project">Java EE 6 Projekt erstellen</a>
<ul class="subGliederung">
<li><a href="#JavaEE6ProjectMaven">Projekt mit Maven generieren</a></li>
<li><a href="#JavaEE6ProjectEclipseJSF">JSF Capabilities hinzuf&#252;gen</a></li>
<li><a href="#JavaEE6ProjectEclipseCDI">CDI Support hinzuf&#252;gen</a></li>
<li><a href="#JavaEE6ProjectProjektDeployen">Projekt auf den JBoss deployen</a></li>
</ul>
</li>
<li><a href="#WieGehtEsWeiter">Wie geht es weiter?</a></li>
</ul>
<h3><a name="SoftwareUndTools" class="noLink">Herunterladen und Installieren aller ben&#246;tigten Software und Tools</a></h3>
<h4><a name="SoftwareUndToolsEclipse" class="noLink">Eclipse Helios f&#252;r Java EE Entwicklung herunterladen</a></h4>
<p>Als erstes wird Eclipse in der Java EE Entwickler Version von <a href="http://www.eclipse.org/downloads" title="Eclipse Helios f&#252;r die Java EE Entwicklung">eclipse.org</a> heruntergeladen.</p>
<div class="singleImgDiv">
<a href="http://www.eclipse.org/downloads" title="Eclipse Helios f&#252;r die Java EE Entwicklung"><img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseHeliosJeeDownload.png" alt="" title="Eclipse Helios f&#252;r die Java EE Entwicklung" width="630" height="143" class="borderGray alignnone size-full wp-image-2566" /></a>
</div>
<p>Das heruntergeladene Archiv am Ort deiner Wahl entpacken &#8211; z.B. einfach im Laufwerk C.</p>
<h4><a name="SoftwareUndToolsJBoss" class="noLink">JBoss AS 6</a></h4>
<p>In diesem Tutorial wird der JBoss 6 Final als Application Server verwendet denn dieser implementiert die <a href="http://javathreads.de/2010/01/java-ee-6-web-profile-technologien">Java EE Web Profile</a> Spezifikation. Der JBoss AS kann unter <a href="http://www.jboss.org/jbossas/downloads.html" title="JBoss Application Server 6 Final">jboss.org</a> heruntergeladen werden.</p>
<div class="singleImgDiv">
<a href="http://www.jboss.org/jbossas/downloads.html" title="JBoss Application Server 6 Final"><br />
<img src="http://javathreads.de/data/uploads/2011/05/1105_JBossAs6Download.png" alt="" title="JBoss Application Server 6 Final" width="630" height="129" class="borderGray alignnone size-full wp-image-2569" /><br />
</a>
</div>
<p>Nach dem Herunterladen das Archiv auch wieder am Ort deiner Wahl entpacken &#8211; kann z.B. auch wieder das Laufwerk C: sein.</p>
<h4><a name="SoftwareUndToolsMaven" class="noLink">Maven 3</a></h4>
<p>Um den Projektstart zu vereinfachen und alle Abh&#228;ngigkeiten automatisch zu beziehen wird Maven 3 verwendet. Sp&#228;ter wird auch das Grundger&#252;st unseres ersten Java EE Hello World Projekts mit Maven generiert. Somit muss Maven 3 &#8220;installiert&#8221; werden. Maven kann von <a href="http://maven.apache.org">http://maven.apache.org</a> heruntergeladen werden:</p>
<div class="singleImgDiv">
<a href="http://maven.apache.org/download.html"><img src="http://javathreads.de/data/uploads/2011/05/1105_Maven303Download.png" alt="" title="Maven 3.0.3" width="630" class="alignnone size-full wp-image-2622" /></a>
</div>
<p>Maven muss auch wieder an einem Ort deiner Wahl entpackt und anschlie&#223;end das <code>maven/bin</code> Verzeichnis im Pfad (Umgebungsvariable <code>PATH</code>) angegeben werden damit der Befehl <code>mvn</code> in der Kommandozeile gefunden wird.<br />
<br/>Installationsanleitung f&#252;r Linux (Ubunutu 11.04) <span id="mavenAnleitungLinuxDivLink" class="link" onclick="javascript:showMavenLinuxInstall()">anzeigen</span>.</p>
<div id="mavenAnleitungLinuxDiv" style="display:none">
Weil Maven 3 bisher noch nicht im Package Repository vorhanden ist muss es von Hand installiert werden.<br />
Herunterladen und entpacken der letzten Version:</p>
<div class="codebox">
$ cd /home/&lt;myusername&gt;<br />
$ wget http://ftp.heanet.ie/mirrors/www.apache.org/dist//maven/binaries/apache-maven-3.0.3-bin.tar.gz<br />
$ tar -xzvf apache-maven-3.0.3-bin.tar.gz
</div>
<p>Nach <code>/usr/local</code> kopieren:</p>
<div class="codebox">
$ sudo mkdir /usr/local/apache-maven<br />
$ sudo cp -R apache-maven-3.0.3 /usr/local/apache-maven/
</div>
<p>Anschlie&#223;end muss dieser Maven Ordner noch mit in die Pfad-Umgebungsvariable aufgenommen werden. In diesem Schritt werden gleich noch weitere ben&#246;tigte Umgebungsvariablen definiert:</p>
<div class="codebox" style="margin-top: 5px;">
$ sudo vi /etc/environment
</div>
<p>Neue Umgebungsvariablen hinzuf&#252;gen:</p>
<div class="codebox">
JAVA_HOME=/usr/lib/jvm/java-6-sun<br />
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.3<br />
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.3<br />
M2=/usr/local/apache-maven/apache-maven-3.0.3/bin
</div>
<p>Und die Variable PATH noch um folgenden Pfad erweitern:</p>
<div class="codebox">
/usr/local/apache-maven/apache-maven-3.0.3/bin
</div>
<p>Sieht bei mir anschlie&#223;end so aus:</p>
<div class="codebox">
PATH=&#8221;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/apache-maven/apache-maven-3.0.3/bin&#8221;
</div>
<p>Nach einem erneuten Login in der Konsole pr&#252;fen ob Maven l&#228;uft:</p>
<div class="codebox">
markus@Lap:~$ mvn -version<br />
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)<br />
Maven home: /usr/local/apache-maven/apache-maven-3.0.3<br />
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.<br />
Java home: /usr/lib/jvm/java-6-sun-1.6.0.24/jre<br />
Default locale: de_DE, platform encoding: UTF-8<br />
OS name: &#8220;linux&#8221;, version: &#8220;2.6.38-8-generic&#8221;, arch: &#8220;i386&#8243;, family: &#8220;unix&#8221;
</div>
</div>
<h3><a name="EclipseKonfigurieren" class="noLink">Eclipse konfigurieren</a></h3>
<p>Zuvor wurde bereits die  die aktuelle  Eclipse Helios (3.6) Java EE IDE heruntergeladen sowie entpackt und diese sollte sp&#228;testens jetzt gestartet werden. Beim ersten Start von Eclipse wir gefragt wo man seinen Workspace hinlegen m&#246;chte. Wieder einfach einen Ort deiner Wahl angeben und das H&#228;ckchen bei &#8220;nicht noch einmal fragen&#8221; setzen.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseHeliosJeeAbout.jpg" alt="" title="Eclipse Helios f&#252;r Java EE Entwickler" width="562" height="182" class="alignnone size-full wp-image-2715" />
</div>
<p>F&#252;r das Java EE Projekt mit Maven Unterst&#252;tzung werden zum einen die <a href="http://www.jboss.org/tools">JBoss Tools</a> und zum anderen das <a href="http://m2eclipse.sonatype.org/">Maven2Eclipse</a> Plugin ben&#246;tigt. Dabei spielen die JBoss Tools bei der Entwicklung von Java EE Projekten unter Eclipse generell eine sehr wichtige Rollen denn sie decken die meisten Themen wie z.B. JSF 2.0, CDI oder JPA sehr gut ab.</p>
<h4><a name="EclipseKonfigurierenJBossTools" class="noLink">JBoss Tools Eclipse Plugin</h3>
</h4>
<p>Die aktuelle Version 3.2 der JBoss Tools gibt es dabei noch gar nicht so lange denn sie wurde erst Mitte Februar Final. Die JBoss Tools werden am einfachsten &#252;ber die offizielle Update Seite installiert: <a href="http://download.jboss.org/jbosstools/updates/stable/helios/">http://download.jboss.org/jbosstools/updates/stable/helios/</a><br />
Dazu in Eclipse im &#8220;Hauptmen&#252;->Help->Install New Software&#8230;&#8221; klicken. Im aufkommenden Dialog den Button &#8220;Add&#8221; klicken um die Update Seite hinzuzuf&#252;gen:</p>
<div class="singleImgDiv">
<a href="http://javathreads.de/data/uploads/2011/05/1105_EclipseAddRepository.png"><img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseAddRepository.png" alt="" title="JBoss Tools Update Seite hinzuf&#252;gen" width="630" height="405" class="alignnone size-full wp-image-2586" /></a>
</div>
<p>Diesen Dialog mit dem Button &#8220;Add&#8221; beenden und anschlie&#223;end wird man erst einmal durch den Schriftzug &#8220;Pending&#8230;&#8221; sehen, dass das Repository geladen wird. Das kann unter Umst&#228;nden eine ganze Weile dauern:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossToolsAddRepPending.png" alt="" title="JBoss Tools Update Seite - Repository wird geladen" width="630" height="159" class="borderGray alignnone size-full wp-image-2588" />
</div>
<p>Sobald das Repository geladen wurde ist eine Liste mit allen m&#246;glichen Gruppen zu sehen. Die bisher bekanntesten Tools wie z.B. die JBoss AS Tools, Seam Tools oder Hibernate Tools befinden sich in der Gruppe &#8220;Web und Java EE Development&#8221;. Man k&#246;nnte jetzt alles durchgehen und nur die ben&#246;tigten Tools selektieren aber der Einfachheit halber selektiere ich &#8220;All JBoss Tools 3.2.0&#8243;:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossToolsAddRepList.png" alt="" title="JBoss Tools Update Seite - Tools Liste" width="630" height="361" class="alignnone size-full wp-image-2589" />
</div>
<p>Anschlie&#223;end den Button &#8220;Next&#8221; klicken. Jetzt werden die Abh&#228;ngigkeiten gepr&#252;ft und das dauert auch wieder eine kleine Ewigkeit.<br />
Sobald die Pr&#252;fung fertig ist sieht man noch einmal die Liste aller Tools die installiert werden sollen. In der Liste taucht sicherlich das ein oder andere Tool auf welches nicht wirklich ben&#246;tigt wird aber es schadet auch nicht. Den Dialog mit &#8220;Next&#8221; beenden.<br />
Auf dem letzten Dialog die Lizensvereinbarungen akzeptieren und den Button &#8220;Finish&#8221; klicken. Anschlie&#223;end beginnt die Installation der JBoss Tools:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossToolsInstalling-.jpg" alt="" title="Eclipse JBoss Tools - Installation" width="613" height="151" class="alignnone size-full wp-image-2728" />
</div>
<p>Die Installation verlangt einen Eclipse Neustart.</p>
<h4><a name="EclipseKonfigurierenJBossServerRuntime" class="noLink">JBoss Server Runtime konfigurieren</a></h4>
<p>Das sp&#228;tere Projekt soll direkt von Eclipse heraus in den JBoss Server deployt werden. Dazu muss der JBoss als Server Runtime Environment in Eclipse konfiguriert werden. Um das zu tun die Eclipse Eigenschaften aufrufen &#8220;Hauptmen&#252;->Window->Preferences&#8221; und die Optionen mit dem Wort &#8220;Server&#8221; filtern. Unter dem Punkt &#8220;Runtime Environments&#8221; wird der JBoss Server als Runtime hinzugef&#252;gt:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/EclipseJBossServerRuntimeEnvironment.png" alt="" title="Eclipse Preferences - JBoss als Server Runtime konfigurieren" width="630" height="286" class="alignnone size-full wp-image-2606" />
</div>
<p>Den Button &#8220;Add&#8221; klicken und im n&#228;chsten Dialog unter &#8220;JBoss Community&#8221; den &#8220;JBoss 6.0 Runtime&#8221; auszuw&#228;hlen. Der Einfachheit halber direkt die Checkbox &#8220;Create a new local server&#8221; selektieren &#8211; das erspart die anschlie&#223;ende Konfiguration einer Server Instanz:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/EclipseJBoss6AndLocalServer.png" alt="" title="Eclipse JBoss 6 Runtime und Local Server" width="613" height="313" class="alignnone size-full wp-image-2607" />
</div>
<p>Mit dem Button &#8220;Next&#8221; in den letzten Dialog wechseln und dort das Verzeichnis ausw&#228;hlen indem der JBoss entpackt wurde (z.B. <code>C:\jboss-6.0.0</code>). Als JRE muss das in Eclipse konfigurierte JDK ausgew&#228;hlt werden. Unter Configuration default ausw&#228;hlen. Den Wizzard mit dem Button &#8220;Finish&#8221; beenden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossToolsRuntimeConfig1.jpg" alt="" title="Eclipse JBoss Runtime Konfiguration" width="613" height="341" class="alignnone size-full wp-image-2750" />
</div>
<p>Nun ist die konfigurierte Server Runtime aufgelistet und kann verwendet werden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossRuntime.jpg" alt="" title="Eclipse JBoss Runtime" width="630" height="247" class="alignnone size-full wp-image-2736" />
</div>
<p>In dem Server-Panel ist auch die lokale Instanz zu sehen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/EclipseJBossRuntime.png" alt="" title="Eclipse JBoss Runtime Lokale Instanz" width="630" height="109" class="alignnone size-full wp-image-2608" />
</div>
<p>Als letzte Konfiguration der eingebetteten JBoss Server Instanz wird jetzt noch das Deployment-Verzeichnis ge&#228;ndert. Per default wird die deployte Anwendung im lokalen Workspace in einen versteckten Ordner deployt. Ich mag es lieber wenn meine Anwendung auch mit direkt in den JBoss deploy Ordner deployt wird und dann auch dort zu finden ist.<br />
Um das Deployment-Verzeichnis zu &#228;ndern mit einem Doppelklick auf die JBoss Server Instanz die Konfiguration &#246;ffnen. Anschlie&#223;end am unterem Ende des Fensters auf den Tab &#8220;Deployment&#8221; klicken. Auf der Deployment Seite nun die Einstellung &#8220;Use JBoss deploy folder&#8221; selektieren und die Einstellungen speichern:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossDeployFolder.jpg" alt="" title="Eclipse JBoss Settings Deployment-Verzeichnis" width="630" height="282" class="alignnone size-full wp-image-2826" />
</div>
<p>Nun kann der Server endlich durch klick auf den gr&#252;nen Pfeil gestartet werden &#8211; er sollte ohne Probleme hochfahren. In der Console sollte am Ende die Startdauer zu sehen sein:</p>
<div class="codebox">
22:03:02,852 INFO  [AbstractServer] Starting: JBossAS [6.0.0.Final "Neo"]<br />
&#8230;<br />
22:03:31,850 INFO  [org.jboss.bootstrap.impl.base.server.AbstractServer] JBossAS [6.0.0.Final "Neo"] Started in 28s:994ms
</div>
<p>Im Browser l&#228;sst sich der JBoss auch bereits aufrufen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossEmptyStartedBrowser.jpg" alt="" title="JBoss Tools Server Runtime gestartet" width="630" height="232" class="alignnone size-full wp-image-2674" />
</div>
<p>Wunderbar &#8211; der Server l&#228;uft =).</p>
<h4><a name="EclipseKonfigurierenMaven" class="noLink">Maven Unterst&#252;tzung in Eclipse</a></h4>
<p>Um Maven direkt aus Eclipse heraus verwenden zu k&#246;nnen ben&#246;tigt man das <a href="http://m2eclipse.sonatype.org/">m2eclipse Plugin von Sonatype</a>. Die Plugin Installation wird wieder &#252;ber das &#8220;Hauptmen&#252;->Help->Install New Software&#8230;&#8221; gestartet. In meiner Helios Version war die Update URL f&#252;r das m2eclipse Plugin bereits konfiguriert. Ansonsten einfach folgende Update URL hinzuf&#252;gen: <a href="http://m2eclipse.sonatype.org/sites/m2e">http://m2eclipse.sonatype.org/sites/m2e</a><br />
Ist dieses Update URL selektiert wird das Repository geladen. In diesem Fall ist nur ein Plugin selektierbar und das muss nat&#252;rlich selektiert werden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseMavenM2Eclipse.png" alt="" title="Eclipse Maven - m2eclipse Plugin installieren" width="630" height="359" class="alignnone size-full wp-image-2593" />
</div>
<p>Den Dialog mit &#8220;Next&#8221; weiterf&#252;hren.<br />
Anschlie&#223;end kommen wieder die Installationsdetails und die Lizensbedingungen. Den Wizzard mit &#8220;Finish&#8221; beenden und abwarten bis man aufgefordert wird Eclipse neu zu starten.<br />
Es kann sein, dass nach dem Neustart das Maven Plugin meldet, dass Eclipse mit einem JDK gestartet werden muss:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1104_EclipseMavenJDK.jpg" alt="" title="Eclipse Maven JDK Hinweis" width="602" height="192" class="alignnone size-full wp-image-2829" />
</div>
<p>In diesem Fall die Datei <code>eclipse.ini</code> &#246;ffnen (liegt direkt neben der Datei <code>eclipse.exe</code>) und unter dem Ausdruck <code>openFile</code> und oberhalb von <code>-vmargs</code> den Verweis auf die JDK angeben:</p>
<div class="codebox">
openFile<br />
-vm<br />
C:\Java\JDK\1.6\bin\javaw.exe<br />
-vmargs
</div>
<p>Mehr zu der Datei <code>eclipse.ini</code> findest du auch im <a href="http://wiki.eclipse.org/Eclipse.ini">Eclipse Wiki</a>.</p>
<p>Nach dem Neustart kann in den Eclipse Preferences (Hauptmen&#252;->Window->Preferences) die Maven Einstellungen konfigurieren. Darunter auch welches Maven verwendet werden soll. Das Plugin bringt eine Embedded-Version mit. In Eclipse reicht diese embedded Version eigentlich aus. Es empfiehlt sich aber die eigene Installation zu verwenden, so dass man auf der Kommandozeile die gleiche Maven Version verwendet wie in Eclipse. Dazu in &#8220;Maven->Installations&#8221; mit dem Button Add die eigene Installation hinzuf&#252;gen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/EclipseMavenPreferences.png" alt="" title="Eclipse Maven - Preferences" width="630" class="alignnone size-full wp-image-2595" />
</div>
<p>Nachdem das Maven Plugin installiert wurde und man evtl. die Maven Installation angepasst hat dauert es einen Moment bis Maven seinen Index aktualisiert hat. Sofern das Maven Index Update noch l&#228;uft sieht man dies in dem Progress Panel:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseMavenIndexUpdate.png" alt="" title="Eclipse Maven - Index Update" width="630" height="203" class="alignnone size-full wp-image-2598" />
</div>
<h4><a name="EclipseKonfigurierenMavenExtrasWTP" class="noLink">Maven Extras &#8211; m2eclipse-extras</a></h4>
<p>Es fehlt noch das Maven Integration for Eclipse WTP Plugin um mit Maven mit dem Eclipse Web Tools Project zu verbinden. Dazu noch einmal im Hauptmen&#252; &#8220;Help->Install New Software..2 klicken und die Update URL ausw&#228;hlen oder hinzuf&#252;gen: <a href="http://m2eclipse.sonatype.org/sites/m2e-extras">http://m2eclipse.sonatype.org/sites/m2e-extras</a></p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseMavenM2eclipseExtras.png" alt="" title="Eclipse Plugin m2eclipse-extras" width="630" height="374" class="alignnone size-full wp-image-2619" />
</div>
<p>Anschlie&#223;end den Wizzard wieder wie gewohnt durchgehen und das Plugin installieren.</p>
<h3><a name="JavaEE6Project" class="noLink">Das erste Java EE 6 Projekt</a></h3>
<p>Nun ist Eclipse konfiguriert und vorbereitet &#8211; es ist Zeit f&#252;r das erste Java EE 6 Projekt mit Eclipse WTP und Maven Unterst&#252;tzung.</p>
<h4><a name="JavaEE6ProjectMaven" class="noLink">Projekt mit Maven generieren</a></h4>
<p>Um ein neues Projekt anzulegen im Hauptmen&#252; &#8220;File->New->Other&#8221; klicken und im ge&#246;ffneten Startfenster des Wizzards &#8220;Maven Project&#8221; ausw&#228;hlen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/EclipseProjectWizzardNewMaven.png" alt="" title="Eclipse Neues Maven Project" width="613" height="328" class="alignnone size-full wp-image-2614" />
</div>
<p>Mit den Button &#8220;Next&#8221; weiter. Im zweiten Dialog &#8220;Select Project Name and Location&#8221; die Voreinstellung &#8220;Use default Workspace Location&#8221; selektiert lassen und Button &#8220;Next&#8221; klicken.<br />
Im folgenden Dialog &#8220;Select an Archetype&#8221; nach &#8220;knappsack&#8221; filtern und <code>ee6-sandbox-archetype</code> ausw&#228;hlen. Falls dieser Archetype nicht verf&#252;gbar ist kann es sein, dass der Maven Index Update noch nicht vollst&#228;ndig durchlaufen ist &#8211; in diesem Fall sieht man in Eclipse unten rechts im Progress View, dass ein Prozess l&#228;uft und es hilft nur warten..<br />
Die &#8220;knappsack&#8221; Archetypes wurden von <a href="http://www.andygibson.net/blog/projects/knappsack/">Andy Gipson</a> erstellt und erm&#246;glichen einen sehr einfachen Start in das Projekt.<br />
Wer ein Beispielprojekt mit einem vollst&#228;ndigem CRUD Beispiel haben m&#246;chte sollte das Archetype <code>jee6-sandbox-demo-archetype</code> verwenden.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseProjectWizzardArchetype.png" alt="" title="New Project - Maven Archetype jee6-sandbox-archetype" width="630" class="alignnone size-full wp-image-2625" />
</div>
<p>Nach dem Selektieren des Archetypes den Dialog mit &#8220;Next&#8221; verlassen.</p>
<p>Auf der n&#228;chsten Seite m&#252;ssen jetzt die Archetype Parameter gesetzt werden. Das ist zum Einen die Group Id und zum Anderen die Artifact Id. In die Group id kommt der &#252;bergeordnete Name der Package Struktur und als Artifact Id wird der Projektname gew&#228;hlt:</p>
<div class="singleImgDiv"><img src="http://javathreads.de/data/uploads/2011/05/1105_MavenProjectArchetypeParameters.png" alt="" title="Neues Maven Projekt - Archetype Parameter" width="630" class="alignnone size-full wp-image-2629" />
</div>
<p>Mit dem Button &#8220;Finish&#8221; den Wizzard beenden. Das Projekt wird nun generiert und das kann einen Moment dauern:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_MavenProjectGenerate.png" alt="" title="Neues Maven Projekt wird generiert" width="630" height="176" class="alignnone size-full wp-image-2617" />
</div>
<p>Nun ist das Projekt erstellt und man kann sich die  Java, xhtml und Konfigurationsdateien ansehen die durch den gew&#228;hlten Maven Archetype generiert wurden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseGeneratedProject.geaendert.jpg" alt="" title="Generiertes Java EE 6 Eclipse Projekt" width="630" height="447" class="alignnone size-full wp-image-2677" />
</div>
<p>Diese generierten Java und xhtml Dateien sollen den Einstieg in JSF 2, CDI und JPA 2 vereinfachen.</p>
<h4>Konfiguration in web.xml auf Servlet 3.0 umstellen</h4>
<p>Der ausgew&#228;hlte Maven Archetype hat in der <code>web.xml</code> als Servlet Spezifikationsversion 2.5 konfiguriert aber wir wollen 3.0 verwenden. Deswegen die <code>web.xml</code> Datei &#246;ffen: ALT-Shift-R -> <code>web.xml</code> oder im Verzeichnis <code>src/main/webapp/WEB-INF</code>. In dieser Datei steht auch schon als Kommentar der Hinweis, dass man f&#252;r den JBoss Servlet Version 3 verwenden soll. Dazu die Zeile 10 l&#246;schen und die oberen Zeilen mit version=&#8221;3.0&#8243; verwenden. Mein <code>web-app</code> Element sieht wie folgt aus:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1104_MavenProjectWebXml.jpg" alt="" title="Maven Projekt web.xml auf Servlet 3.0 konfigurieren" width="630" height="165" class="borderGray alignnone size-full wp-image-2655" />
</div>
<h4><a name="JavaEE6ProjectEclipseJSF" class="noLink">JSF Capabilities dem Projekt hinzuf&#252;gen</a></h4>
<p>&#214;ffnet man eine .xhtml Seite so &#246;ffnet sich der Visuell Editor von den JBoss Tools. Allerdings erscheint eine Fehlermeldung, dass die JSF Capabilities / JSF Unterst&#252;tzung f&#252;r dieses Projekt noch nicht konfiguriert ist:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseProjectJSFCapabilitiesError.jpg" alt="" title="Eclipse JSF Fehlermeldung Capability / JSF Unterst&#252;tzung nicht konfiguriert" width="630" height="378" class="borderGray alignnone size-full wp-image-2653" />
</div>
<p>Entweder in dieser Fehlermeldung direkt auf den Button &#8220;Add JSF Capabilities&#8221; klicken oder mit der rechten Maustaste auf das Projekt und aus dem Kontextmen&#252; &#8220;Configure->Add JSF Capabilities&#8221; klicken. In beiden Varienten &#246;ffnet sich ein Wizzard mit dem ersten Dialog &#8220;Project Location&#8221;. Der vorgegebene Pfad f&#252;r die <code>web.xml</code> Datei sollte eigentlich stimmen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJsfCapabilitesProjectLocation1.jpg" alt="" title="Eclipse Add JSF Capabilities Wizzard - Project Location" width="630" height="190" class="alignnone size-full wp-image-2654" />
</div>
<p>Mit den Button &#8220;Next&#8221; auf den n&#228;chsten Dialog &#8220;Project Folders&#8221; wechseln. Die vorgegebenen Pfade sollten auch hier stimmen. Die Checkbox &#8220;Add Libraries&#8221; darf nicht selektiert werden denn sonst kommt es sp&#228;ter zu Fehlern.<br />
Als Servlet Version muss 3.0, wie zuvor bereits in der <code>web.xml</code> abge&#228;ndert, ausgew&#228;hlt werden.<br />
Der Haken bei der Checkbox f&#252;r &#8220;Target Server&#8221; bewirkt, dass dieses Projekt direkt dem konfigurierten JBoss hinzugef&#252;gt und mit deployt wird:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseProjectJSFCapabilitiesProjectFolders.jpg" alt="" title="Eclipse Projekt JSF Capabilities - Project Folders" width="630" height="569" class="alignnone size-full wp-image-2755" />
</div>
<p>Den Wizzard mit dem Button &#8220;Finish&#8221; beenden. Man wird anschlie&#223;end gefragt ob man in die Web Developer Perspektive wechseln m&#246;chte. Je nach Geschmack kann man sich die Web Developer Perspektive anschauen und verwenden oder wieder in die Java EE Perspektive wechseln.</p>
<p>Nun sollten sich alle <code>.xhtml</code> Seiten ohne Warnung im Visual Editor &#246;ffnen lassen und auch Autocomplete f&#252;r JSF Tags m&#246;glich sein:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossToolsVisualEditorAutocomplete.jpg" alt="" title="Eclipse JBoss Tools Visual Editor Autocomplete" width="630" height="204" class="alignnone size-full wp-image-2691" />
</div>
<h4><a name="JavaEE6ProjectEclipseCDI" class="noLink">CDI (Context and Dependency Injection) Unterst&#252;tzung dem Projekt hinzuf&#252;gen</a></h4>
<p>Als letztes m&#252;ssen noch die CDI Unterst&#252;tzung konfiguriert werden. Man merkt es daran, dass in der <code>.xhtml</code> Seite noch kein Autocomplete f&#252;r die EL (Expression Language) zul&#228;sst. Wenn man z.B. in der <code>home.xhtml</code> den Cursor in die Expression <code>#{demoCourseList}</code> in Zeile 11 setzt und <code>F3</code> dr&#252;ckt sollte die entsprechende Producer Methode der CDI Bean springen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_CDICapabilitiesNaXhtml.jpg" alt="" title="Eclipse Projekt CDI Capabilites nicht konfigurieren" width="630" height="146" class="alignnone size-full wp-image-2696" />
</div>
<p>Die CDI Unterst&#252;tzung wird genauso hinzugef&#252;gt wie die JSF Capabilites im Abschnitt zuvor. Im Kontextmen&#252; des Projektes (rechte Maustaste auf den obersten Knoten des Projekts) Configure->Add CDI (Context and Dependency Injection) support.. klicken. Im ge&#246;ffneten CDI Preferences Dialog die Checkbox selektiert lassen und den Button &#8220;Apply&#8221; dr&#252;cken. Anschlie&#223;end den Preferences Dialog mit dem Button &#8220;OK&#8221; wieder verlassen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseCDISupportPreferences.jpg" alt="" title="Eclipse CDI Unterst&#252;tzung Preferences" width="630" height="221" class="alignnone size-full wp-image-2698" />
</div>
<p>Nun den gleichen Versuch wie vorher schon in der <code>home.xhtml</code> machen und mit dem Cursor auf die Expression <code>#{demoCourseList}</code> in Zeile 11 setzen und <code>F3</code> dr&#252;cken. Nun &#246;ffnet sich der Java Editor genau an der richtigen Methode mit dem dazugeh&#246;rigem CDI Producer:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1104_CDISupportXhtmlElF3.jpg" alt="" title="Eclipse CDI Support - Producer Methode" width="630" height="148" class="alignnone size-full wp-image-2699" />
</div>
<p>Au&#223;erdem funktioniert nun auch Autocomplete direkt in der <code>.xhtml</code> Seite in einer Expression:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1104_CDISupportXhtmlElAutocomplete.jpg" alt="" title="Eclipse CDI Support - EL Autocomplete" width="630" height="181" class="alignnone size-full wp-image-2700" />
</div>
<h4><a name="JavaEE6ProjectProjektDeployen" class="noLink">Projekt auf den JBoss deployen</a></h4>
<p>Jetzt kommt der erste Test ob das generierte Projekt sich auch deployen und im Browser anzeigen l&#228;sst. Dazu im Server Panel &#252;berpr&#252;fen ob das Projekt dem Server hinzugef&#252;gt wurde &#8211; dazu einfach den JBoss aufklappen und vergewissern ob das <code>jee6project</code> zu sehen ist. Falls nicht muss das Projekt noch hinzugef&#252;gt werden: &#8220;rechte Maustaste auf JBoss 6.0 Runtime Server->Add and Remove&#8230;&#8221;. Anschlie&#223;end den Server starten:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossStarting.jpg" alt="" title="JBoss Runtime starten" width="630" height="117" class="alignnone size-full wp-image-2747" />
</div>
<p>In der Console erscheinen dann irgendwann die folgenden Zeilen:</p>
<div class="codebox">
23:08:27,957 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/jee6project<br />
23:08:28,090 INFO  [javax.enterprise.resource.webcontainer.jsf.config] Mojarra 2.0.3 ( b05) f&#252;r Kontext &#8216;/jee6project&#8217; wird initialisiert.
</div>
<p>Nun die deployte Anwendung im Browser unter <a href="http://localhost:8080/jee6project">http://localhost:8080/jee6project</a> aufrufen:</p>
<div class="codebox">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseJavaEEMavenProjectDeployt.jpg" alt="" title="Java EE 6 Projekt deployt und aufrufbar" width="630" height="407" class="alignnone size-full wp-image-2758" />
</div>
<p>Die Seite die dargestellt wird stammt aus dem gew&#228;hlten Knappsack Maven Archetype und soll die ersten Schritte in Java EE 6 bzw. in CDI vereinfachen.<br />
Um zu pr&#252;fen ob die WTP Unterst&#252;tzung funktioniert kann man das Hot Deployment ausprobieren. Hot Deployment funktioniert auf alle Web Resourcen wie z.B. <code>.xhmtl</code>, <code>.css</code> oder Bilddateien.<br />
Um das zu testen einfach die <code>home.xhtml</code> &#246;ffnen und einen Text eingeben:</p>
<div class="codebox">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseWTPHotDeploymentXhtml.jpg" alt="" title="Eclipse WTP Hot Deployment - Editor" width="630" height="206" class="alignnone size-full wp-image-2764" />
</div>
<p>Nach dem speichern die Seite im Browser aktualisieren und der Text sollte direkt angezeigt werden.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2011/05/1105_EclipseWTPHotDeploymentBrowser.jpg" alt="" title="Eclipse WTP Hot Deployment - Browser" width="630" height="233" class="alignnone size-full wp-image-2768" />
</div>
<p>Prinzipiell ist das Tutorial an dieser Stelle zu Ende &#8211; der JBoss l&#228;uft und das Java EE 6 Projekt ist deployt. Es lohnt sich als n&#228;chstes den Code durchzusehen und zu ver&#228;ndern. Im folgenden Abschnitt wird noch kurz auf ein paar Dinge im Source Code rund um CDI eingegangen.</p>
<h3><a name="WieGehtEsWeiter" class="noLink">Wie geht es weiter?</a></h3>
<p>An diesem Punkt angekommen solltest du ein laufendes Java EE 6 Projekt im Web Profile auf dem JBoss Application Server haben. Nun kannst du dich mit Eclipse, Maven oder Java EE 6 weiter besch&#228;ftigen.<br />
Hast du mit Java EE 6 noch &#252;berhaupt keine Erfahrungen solltest du dir dieses Projekt genauer ansehen und dich mit den bereits verwendeten Annotationen und Aufbau vertraut machen.</p>
<p>Viel Spa&#223; beim ausprobieren =).</p>
<p><script type="text/javascript">
function showMavenLinuxInstall() {
document.getElementById('mavenAnleitungLinuxDiv').style.display = 'block';
document.getElementById('mavenAnleitungLinuxDivLink').style.display = 'none';
}
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2011/05/tutorial-mit-java-ee-6-unter-eclipse-helios-und-mit-maven-unterstuetzung-starten/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Links Thread #1 &#8211; JEE, Seam, Performance, Maven</title>
		<link>http://javathreads.de/2009/06/links-thread-1-jee-seam-performance-maven/</link>
		<comments>http://javathreads.de/2009/06/links-thread-1-jee-seam-performance-maven/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 06:30:26 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Java EE 6]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Links Thread]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1565</guid>
		<description><![CDATA[Ab sofort gibt es eine neue Kategorie mit dem &#252;beraus anspruchsvollen und innovativen Namen &#8220;Links Thread&#8221;. Der Grund ist, dass es einige Artikel in der Blogosph&#228;re gibt die ich ziemlich interessant finde aber nicht noch einmal wortw&#246;rtlich in meinem Blog wiederholen oder weiter ausarbeiten m&#246;chte. In diesem Fall bietet es sich an diese Artikel ein [...]]]></description>
			<content:encoded><![CDATA[<p>Ab sofort gibt es eine neue Kategorie mit dem &#252;beraus anspruchsvollen und innovativen Namen &#8220;Links Thread&#8221;. Der Grund ist, dass es einige Artikel in der Blogosph&#228;re gibt die ich ziemlich interessant finde aber nicht noch einmal wortw&#246;rtlich in meinem Blog wiederholen oder weiter ausarbeiten m&#246;chte. In diesem Fall bietet es sich an diese Artikel ein wenig zu sammeln und diese einfach als direkte Links mit &#220;berschrift weiterzugeben. Dabei soll dieser Blog nicht zu einer Linksammlung verkommen sondern einfach nur ab und an (wenn ein paar Links zusammen gekommen sind) auf ein paar interessante und lesenswerte Artikel verweisen.</p>
<p>Somit geht es diese Woche mit dem &#8220;Links Thread #1&#8243; los:</p>
<ul>
<li><b>The possibilities of Servlet 3.0 and JavaEE 6</b> (Michael Galpin)<br/>Developing with Comet and Java &#8211; Implementing the Servlet 3.0 specification. [<a href="http://www.ibm.com/developerworks/web/library/wa-cometjava/?ca=dgr-jw22Comet-Java">Link</a>]</li>
<li><b>DTO in anger</b> (Nicolas Fr&#228;nkel)<br/>In JEE architecture using lighweight frameworks, creating a DTO layer is an anti-pattern. [<a href="http://blog.frankel.ch/tech/dev/java/dto-in-anger">Link</a>]
</li>
<li><b>Speed up your Data-Driven JSF/Seam Application by Two Orders of Magnitude</b> (Dan Allen)<br/> Sehr lesenswerter Artikel &#252;ber g&#228;ngige Performance Probleme und m&#246;gliche Optimierungen bei JSF/Seam Anwendungen. [<a href="http://jsfcentral.com/articles/speed_up_your_jsf_app_1.html">Link Teil 1</a>][<a href="http://jsfcentral.com/articles/speed_up_your_jsf_app_2.html">Link Teil 2</a>]</li>
<li><b>JPA implementation patterns: Using UUIDs as primary keys</b> (Albert Sikkema)<br/>Interessanter Ansatz mit Pro und Cons anstatt <code>@GeneratedValue</code> eine UUID in einer abstracten Oberklasse selbst zu generieren [<a href="http://blog.xebia.com/2009/06/03/jpa-implementation-patterns-using-uuids-as-primary-keys/">Link</a>]
<li><b>JSF Applications – JBoss Seam or Spring Web Flow?</b> (Edem Morny)<br/>Sch&#246;ne Zusammenfassung der wichtigsten Punkte bei der Entwicklung einer Web Anwendung im Zusammenhang mit einem Vergleich zwischen Seam und Spring Web Flow. [<a href="http://edemmorny.wordpress.com/2009/04/29/jsf-applications-–-jboss-seam-or-spring-web-flow/">Link</a>]</li>
<li><b>Seam and Spring Comparison</b> (Andy Gibson)<br/>Ein sehr sch&#246;n ausgearbeiteter und ausf&#252;hrlicher Vergleich dieser beiden Frameworks. [<a href="http://www.andygibson.net/articles/seam_spring_comparison/html/index.html">Artikel Link</a>] [<a href="http://www.andygibson.net/blog/index.php/2009/01/19/seam-vs-spring-web-flow-part-4-conclusion/">Diskussion</a>]</li>
<li><b>Configuring a Seam EJB project for development with Maven and JBoss Tools</b> (Maarten Winkels) [<a href="http://blog.xebia.com/2009/06/06/configuring-a-seam-ejb-project-for-development-with-maven-and-jboss-tools/">Link</a>]</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/06/links-thread-1-jee-seam-performance-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

