<?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>PINC-Blog &#187; grails</title>
	<atom:link href="http://www.pincservices.de/wordpress/tag/grails/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pincservices.de/wordpress</link>
	<description></description>
	<lastBuildDate>Thu, 04 Mar 2010 19:21:36 +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>Hudson und Grails am heimischen Herd</title>
		<link>http://www.pincservices.de/wordpress/hudson-und-grails-am-heimischen-herd</link>
		<comments>http://www.pincservices.de/wordpress/hudson-und-grails-am-heimischen-herd#comments</comments>
		<pubDate>Wed, 12 Aug 2009 22:01:52 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Projektverwaltung]]></category>
		<category><![CDATA[Werkzeuge]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=217</guid>
		<description><![CDATA[Nachdem sich verschiedene Projekte bei mir angesammelt haben und ich für jedes in der Regel ein entsprechendes Trac-Projekt angelegt habe, fehlte mir immer mehr die projektübergreifende Oberfläche.
Mit den Wochen und Monaten schwängerte sich mein Geist mit dem Gedanken sich an Trac &#8220;zu vergreifen&#8221; und selbst so eine Oberfläche zu schreiben. Zum Glück kam mir eine [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem sich verschiedene Projekte bei mir angesammelt haben und ich für jedes in der Regel ein entsprechendes Trac-Projekt angelegt habe, fehlte mir immer mehr die projektübergreifende Oberfläche.</p>
<p>Mit den Wochen und Monaten schwängerte sich mein Geist mit dem Gedanken sich an Trac &#8220;zu vergreifen&#8221; und selbst so eine Oberfläche zu schreiben. Zum Glück kam mir eine neue Anforderung in den Weg, die mir die Arbeit teilweise abnahm: der Wunsch eines Continuous Integration Systems &#8211; kurz CI.</p>
<p>Da ich schon gute Erfahrungen mit Hudson gemacht hatte, war die Entscheidung schnell getroffen das System auch für mich einzusetzen. Die Vorteile:</p>
<ul>
<li>einfache Installation</li>
<li>Open Source</li>
<li>kostenfrei</li>
</ul>
<p>Allerdings musste gewährleistet werden, dass man damit Grails-Projekte bauen kann. Schaut man in die Plugin-Liste schreit es einen förmlich an: &#8220;Hier bin ich. Ist total easy-schneasy. Machs einfach!&#8221;</p>
<p>Aber wie so oft bei so offensichtlichen Aktionen liegt die Tücke im Detail. Leider hören &#8211; wie so oft &#8211; die Tutorials im Netz bei der Hälfte auf und vermitteln einem das Gefühl, dass man zu doof für die IT-Welt ist. Deshalb möchte ich hier einfach meine Erfahrungen bei der Einrichtung von Hudson mit den Grails- und Trac-Plugin auf einem Ubuntu-System vorstellen.</p>
<h3>System</h3>
<ul>
<li>Ubuntu 09.04</li>
<li>Tomcat 6 (aus den Ubuntu-Repository)</li>
<li>Trac (manuell installiert)</li>
<li>Grails 1.1.1</li>
</ul>
<p><em>Anmerkung</em><br />
Ob Trac jetzt manuell oder aus dem Repository installiert wurde, ist eigentlich egal.</p>
<h3>Hudson</h3>
<p>Als erstes ging es darum Hudson zu installieren. Zwar bietet Ubuntu auch hier an über eine kleine Erweiterung der Repositories Hudson als Daemon zu installieren, allerdings bin ich persönlich kein großer Freund davon. Deshalb Alternative: war-File downloaden und einfach im Tomcat deployen.</p>
<p style="color: red; font-weight: bold;">Achtung!!! Wenn man das macht, sollte man vorsichtig beim Neustart aus Hudson heraus sein. Die Applikation fährt interessanterweise den Tomcat runter, bekommt ihn aber danach nicht mehr gestartet.</p>
<p>Zwei Dinge muss man dabei beachten, die aber auch auf der Hudson-Seite dokumentiert sind.</p>
<ol>
<li>die Variable HUDSON_HOME muss gesetzt sein &#8211; habe ich bei mir direkt in das Tomcat-Startskript geschrieben (Faulheit siegt)</li>
<li>Es müssen teilweise noch Verzeichnis-Rechte angepasst werden, damit Hudson korrekt läuft</li>
</ol>
<p>Nachdem Hudson nun endlich sein Pracht im Browser präsentiert geht es weiter mit dem Grails-Plugin.</p>
<h3>Grails</h3>
<p>Die Installation von Plugins ist in Hudson sehr simpel &#8211; oder wie manch Web 2.0-Entwickler sagen würde: &#8220;kissy&#8221; (von KISS &#8211; Keep it stupid simple). Einfach Häkchen setzen und auf &#8220;Installieren&#8221; klicken. Wie schon erwähnt, kann es hierbei dazu kommen, dass Hudson den kompletten Tomcat versucht neu zu starten, was zumindest bei mir nicht funktioniert hat. Ggf. einfach den Tomcat manuell neu starten.</p>
<p>Nachdem das Plugin installiert ist, müssen noch einige Konfigurationen durchgeführt werden. Als erstes muss der &#8220;Grails Builder&#8221; in der globalen Konfiguration von Hudson angelegt werden. Hier kann man verschiedene Grails-Installationen angeben, was insbesondere durch die teilweise Inkompatibilität der Versionen von großem Vorteil ist. Da die Sache in zwei Textboxen geregelt wird, verzichte ich mal auf den obligatorischen Screenshot.<br />
Hat man jetzt die notwendigen Installationen angegeben kann man sich gütlich an die Konfiguration des Jobs machen. Hier muss ich vorausschicken, dass ich bereits einige Jobs angelegt hatte.</p>
<p>Unter dem Punkt &#8220;Build Verfahren&#8221; kann man über den Button &#8220;Build-Schritt hinzufügen&#8221; ein &#8220;Build with Grails&#8221; anlegen. Dabei lassen sich verschieden Werte konfigurieren. Nach einigem Herumprobieren waren aber nur drei relevant:</p>
<ol>
<li>Grails Installation (wurde eben in der globalen Konfiguration angelegt)</li>
<li>Targets</li>
<li>grails.work.dir</li>
</ol>
<p>Die Targets kann sich jeder selbst aussuchen aus der Liste, die &#8220;grails help&#8221; ausgibt. Bei mir sind das <code>"test-app -unit --non-interactive" war doc</code>.<br />
Wichtig ist allerdings vor allem der Parameter grails.work.dir!</p>
<p>Das Grails-Plugin erwartet standardmäßig, dass es Zugriff auf das Verzeichnis /usr/share/tomcat6/.grails besitzt um auf den scriptCache zugreifen zu können. Da dieses Verzeichnis aber nicht zwingend freigegeben werden soll, muss ein alternatives Verzeichnis über <code>grails.work.dir</code> gesetzt werden. Andernfalls müssen die Zugriffsrechte mittels <code>sudo chmod -R 777 /usr/share/tomcat6/.grails</code> gesetzt werden.<br />
Das Projekt-Verzeichnis hat noch eine weitere Bedeutung. Wenn man z.B. in Subversion seinen Code unter &#8220;trunk&#8221; eincheckt und keinen expliziten Modulpfad angelegt hat, wird automatisch trunk als Projektname auch in Hudson beim Bauen verwendet. Nun kann man sich vorstellen, dass bei mehreren Projekten, die alle in &#8220;trunk&#8221; liegen dies zu einer Überschneidung führt, die nicht unbedingt erwünscht ist.</p>
<p>Nichtsdestotrotz, bin ich hiermit bereits an das Ende meiner Vorstellung gekommen. Nach der Konfiguration des Jobs einfach auf &#8220;Jetzt bauen&#8221; klicken und schauen was passiert &#8211; ich hoffe mal es funktioniert. Ansonsten: bitte nicht hauen, bei mir läufts <img src='http://www.pincservices.de/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Trac</h3>
<p>Für alle, die jetzt fragend dastehen und wissen wollen: &#8220;aber er hat doch was von Trac erzählt&#8221;. Ja, das habe ich und ja, auch das geht sehr einfach. Nachdem man das Trac-Plugin installiert hat, erscheint ein Eingabefeld in der Job-Konfiguration, in dem man einen Link zum Trac-Projekt hinterlegen. Nachdem man diesen gespeichert hat, erscheint ein simpler Menüpunkt auf der Job-Seite &#8220;Trac&#8221;, der zu der entsprechenden Trac-Seite führt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/hudson-und-grails-am-heimischen-herd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notelib 0.2.5 release + PINCServices.de revised</title>
		<link>http://www.pincservices.de/wordpress/notelib-025-release-pincservicesde-revised</link>
		<comments>http://www.pincservices.de/wordpress/notelib-025-release-pincservicesde-revised#comments</comments>
		<pubDate>Sun, 15 Feb 2009 09:08:55 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[Notelib 0.2.5]]></category>
		<category><![CDATA[PINC-Apps]]></category>
		<category><![CDATA[Savant3]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=150</guid>
		<description><![CDATA[Zwei Neuerungen stehen heute ins Haus. Einerseits der Release von PINC-Notelib und andererseits die Ãœberarbeitung der PINCServices.de-Homepage. Auch wenn extern mehr der Blog referenziert wird, gibt es auch eine klassische Einstiegsseite.
Notelib Release
Es ist soweit, die neue Version von PINC-Notelib ist online. Unter PINC-Apps finden sich die Downloadlinks fÃ¼r die BinÃ¤r- und die Sourcecodeversion. AuÃŸerdem gibt [...]]]></description>
			<content:encoded><![CDATA[<p>Zwei Neuerungen stehen heute ins Haus. Einerseits der Release von PINC-Notelib und andererseits die Ãœberarbeitung der <a href="http://www.pincservices.de" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','pincservices.de')" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','PINCServices.de')">PINCServices.de</a>-Homepage. Auch wenn extern mehr der Blog referenziert wird, gibt es auch eine klassische Einstiegsseite.</p>
<h4>Notelib Release</h4>
<p>Es ist soweit, die neue Version von PINC-Notelib ist online. Unter <a href="http://www.pincservices.de/wordpress/pinc-apps" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de%2Fwordpress%2Fpinc-apps','PINC-Apps')">PINC-Apps</a> finden sich die Downloadlinks fÃ¼r die BinÃ¤r- und die Sourcecodeversion. AuÃŸerdem gibt die Featureliste einen groben Ãœberblick Ã¼ber die enthaltenen Funktionen, die die Applikation bereithÃ¤lt.<br />
Ich will darauf hinweisen, dass es sich dabei um eine Webapplikation handelt und einen Servletcontainer (z.B. Tomcat) zum laufen benÃ¶tigt.</p>
<h4>PINCservices.de in &#8220;neuem&#8221; Gewand</h4>
<p>Nach einiger Ãœberlegung habe ich mich dazu entschieden die Ausrichtung von PINCServices zu Ã¤ndern. Es wird von einem reinen AuftragsgeschÃ¤ft zurÃ¼cktreten und sich auf die Erstellung von Webapplikationen auf <a href="http://www.grails.org" onclick="return TrackClick('http%3A%2F%2Fwww.grails.org','Grails')">Grails</a>- und Java-Basis konzentrieren.</p>
<p>Mit den inhaltlichen Ã„nderungen kommen auch ein paar technische Neuerungen einher. So wurde der Unterbau der Homepage von <a href="http://www.pincservices.de" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','pincservices.de')" onclick="return TrackClick('http%3A%2F%2Fwww.pincservices.de','PINCServices.de')">pincservices.de</a> ein wenig aufpoliert. Mit Savant3 (<a href="http://www.phpsavant.com" onclick="return TrackClick('http%3A%2F%2Fwww.phpsavant.com','http%3A%2F%2Fwww.phpsavant.com')">http://www.phpsavant.com</a>) steht dafÃ¼r eine sehr angenehme Templating-Engine zur VerfÃ¼gung.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/notelib-025-release-pincservicesde-revised/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Referenzprojekt Grails-Forum</title>
		<link>http://www.pincservices.de/wordpress/referenzprojekt-grails-forum</link>
		<comments>http://www.pincservices.de/wordpress/referenzprojekt-grails-forum#comments</comments>
		<pubDate>Thu, 06 Mar 2008 20:52:03 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[google code]]></category>
		<category><![CDATA[grails]]></category>

		<guid isPermaLink="false">http://www.pincservices.de/wordpress/?p=8</guid>
		<description><![CDATA[Nachdem ich einige Zeit nichts von mir hÃ¶ren lassen habe, gibt es dafÃ¼r gleich mehrere Neuigkeiten. Eine davon ist ein Referenzprojekt, an dem ich aktuell mitwirke.
Ãœber Grails wird in letzter Zeit immer mehr geredet, aber scheinbar gibt es kaum bzw. keine Referenzprojekte bzw. Produkte, die die EffektivitÃ¤t und den Funktionsumfang von Grails Ã¼berzeugend darstellen. Aus [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich einige Zeit nichts von mir hÃ¶ren lassen habe, gibt es dafÃ¼r gleich mehrere Neuigkeiten. Eine davon ist ein Referenzprojekt, an dem ich aktuell mitwirke.<br />
Ãœber Grails wird in letzter Zeit immer mehr geredet, aber scheinbar gibt es kaum bzw. keine Referenzprojekte bzw. Produkte, die die EffektivitÃ¤t und den Funktionsumfang von Grails Ã¼berzeugend darstellen. Aus diesem Grund hat sich eine kleine Gruppe von Grails-Usern dazu entschlossen ein Forum auf Basis von Grails zu entwickeln. Unter der URL <a href="http://code.google.com/p/groowe/" onclick="return TrackClick('http%3A%2F%2Fcode.google.com%2Fp%2Fgroowe%2F','http%3A%2F%2Fcode.google.com%2Fp%2Fgroowe%2F')" target="_blank">http://code.google.com/p/groowe/</a> befindet sich die aktuelle Projektseite.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pincservices.de/wordpress/referenzprojekt-grails-forum/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
