<?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>Ant | Nerdpress.org</title>
	<atom:link href="https://nerdpress.org/tag/ant/feed/" rel="self" type="application/rss+xml" />
	<link>https://nerdpress.org</link>
	<description>...dev, tech problems and solutions.</description>
	<lastBuildDate>Mon, 07 Nov 2011 15:39:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Silex Starter Stubs</title>
		<link>https://nerdpress.org/2011/11/04/silex-starter-stubs/</link>
					<comments>https://nerdpress.org/2011/11/04/silex-starter-stubs/#comments</comments>
		
		<dc:creator><![CDATA[Ivo Bathke]]></dc:creator>
		<pubDate>Fri, 04 Nov 2011 14:01:46 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Silex]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[h5bp]]></category>
		<category><![CDATA[silex]]></category>
		<category><![CDATA[skeleton]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=1924</guid>

					<description><![CDATA[<p>There are several preconfigured Silex Apps on github. They let you start your Silex project in no time, which is good. This makes Silex an even more simple rabbithole into the symfony2 world. I started one myself and had a close look on the others, so i thought i share this. They all differ a &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2011/11/04/silex-starter-stubs/" class="more-link">Continue reading<span class="screen-reader-text"> "Silex Starter Stubs"</span></a></p>
The post <a href="https://nerdpress.org/2011/11/04/silex-starter-stubs/">Silex Starter Stubs</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p>There are several preconfigured <a href="http://silex.sensiolabs.org/">Silex</a> Apps on github. They let you start your Silex project in no time, which is good.<br />
This makes Silex an even more simple rabbithole into the symfony2 world.</p>
<p>I started one myself and had a close look on the others, so i thought i share this.<br />
They all differ a bit so you must choose what fits your needs the best.</p>
<p>They all follow some kind of &#8220;best practise&#8221; structure, some more, some less.</p>
<p><span id="more-1924"></span></p>
<p>So there is: <a href="https://github.com/gcalore/Silex-Stub">https://github.com/gcalore/Silex-Stub</a><br />
This has several common Providers already enabled:</p>
<ul>
<li>Twig</li>
<li>UrlGenerator</li>
<li>Monolog</li>
<li>Doctrine DBAL</li>
<li>Validator</li>
<li>Forms</li>
</ul>
<p>but it has no Frontend Frameworks integrated.<br />
Another minus point is that the index is not in a web directory but in root, so that all lib files etc. are potentially accessible from the web, thou a .htaccess avoids that here.<br />
It also doesnt provide tests.<br />
So i wouldnt recommend that one.</p>
<p>The next one is: <a href="https://github.com/brtriver/silex-sample-application">https://github.com/brtriver/silex-sample-application</a><br />
This is a sample rudimentary blog application that you could use as starter.<br />
It has Doctrine and Twig build-in, it has tests but also doesnt include some frontend magic.</p>
<p>The most complete is: <a href="https://github.com/lyrixx/Silex-Kitchen-Edition">https://github.com/lyrixx/Silex-Kitchen-Edition</a><br />
This starterkit has several extension enabled:</p>
<ul>
<li>Doctrine</li>
<li>Form</li>
<li>Session</li>
<li>SymfonyBrige</li>
<li>Translation</li>
<li>Twig (with debug extension)</li>
<li>UrlGenerator</li>
</ul>
<p>and it also has the HTML5Boilerplate and Twitter`s Bootstrap integrated.<br />
Further <em>Assetic</em> and the <em>YAMLLoader</em> are already shipped and active and tests are provided aswell.<br />
Here Silex is included as submodule, which means unpacked &#8211; hence not as phar-, which might be interesting for some.<br />
In my Opinion this is some kind of a reference app, this is even more likely since the creator is sensio employee.<br />
I stole a lot from it ;).</p>
<p>Last but not least mine ;) : <a href="https://github.com/ivoba/superleansilexplate">https://github.com/ivoba/superleansilexplate</a><br />
Its supposed to be very lean.<br />
It comes just with <em>Twig</em> and <em>Translation</em> enabled.<br />
It aims mainly at simple applications that need routing and just some additional logic. F.e. its a good container for javascript driven apps that get their data through API calls. If you need database support and more, simply register the provider yourself or use the <a href="https://github.com/lyrixx/Silex-Kitchen-Edition">kitchen</a>.</p>
<p>Tests are included and for the frontend there is the a mix of skeleton(bootstrap seemed too verbose and too twitter branded for mi gusto) and HTML5boilerplate.<br />
Also there is an optimized Boilerplate Build included to avoid Assetic.</p>
<p><a href="https://nerdpress.org/wp-content/uploads/2011/11/superleansilexplate.png"><img decoding="async" class="alignnone size-medium wp-image-1939" title="superleansilexplate" src="https://nerdpress.org/wp-content/uploads/2011/11/superleansilexplate-300x148.png" alt="" width="300" height="148" srcset="https://nerdpress.org/wp-content/uploads/2011/11/superleansilexplate-300x148.png 300w, https://nerdpress.org/wp-content/uploads/2011/11/superleansilexplate.png 972w" sizes="(max-width: 300px) 100vw, 300px" /></a><br />
Its not really finished yet, but sufficient to start with.<br />
(feel free to provide some improvements)</p>The post <a href="https://nerdpress.org/2011/11/04/silex-starter-stubs/">Silex Starter Stubs</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
					<wfw:commentRss>https://nerdpress.org/2011/11/04/silex-starter-stubs/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Boilerplate Build mit FTP deploy</title>
		<link>https://nerdpress.org/2011/09/13/boilerplate-build-mit-ftp-deploy/</link>
					<comments>https://nerdpress.org/2011/09/13/boilerplate-build-mit-ftp-deploy/#comments</comments>
		
		<dc:creator><![CDATA[Ivo Bathke]]></dc:creator>
		<pubDate>Tue, 13 Sep 2011 09:12:02 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Project Setup]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[boilerplate]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[yui-compressor]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=1652</guid>

					<description><![CDATA[<p>Da habe ich mir letztens die html5 boilerplate angeschaut und musste feststellen, dass die einen ziemlich guten build mitbringt. Dieser optimiert Bilder, konkateniert und komprimiert alles was so geht, mit Hilfe von u.a. dem YUI Kompressor. Was es noch nicht kann ist der Deploy, aber das kann man ihm ja beibringen ;) Nun denn, direkt &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2011/09/13/boilerplate-build-mit-ftp-deploy/" class="more-link">Continue reading<span class="screen-reader-text"> "Boilerplate Build mit FTP deploy"</span></a></p>
The post <a href="https://nerdpress.org/2011/09/13/boilerplate-build-mit-ftp-deploy/">Boilerplate Build mit FTP deploy</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p>Da habe ich mir letztens die <a href="http://html5boilerplate.com/">html5 boilerplate</a> angeschaut und musste feststellen, dass die einen ziemlich guten build mitbringt.<br />
Dieser optimiert Bilder, konkateniert und komprimiert alles was so geht, mit Hilfe von u.a. dem YUI Kompressor.<br />
Was es noch nicht kann ist der Deploy, aber das kann man ihm ja beibringen ;)</p>
<p><span id="more-1652"></span>Nun denn, direkt mal probieren, der Post <a href="http://net.tutsplus.com/tutorials/html-css-techniques/automated-optimization-with-html5-boilerplate-build/">hier</a> beschreibt schon ziemlich gut was und wie man da was machen kann.</p>
<p>Ich benutze noch ant 1.8.0, also machen wir was uns vorgeschlagen wird:</p>
<blockquote><p>All features of the build script require Ant version 1.8.2. Please upgrade to 1.8.2 or remove all instances of &#8216;overwrite=no&#8217; (and this fail task) from the build script to continue</p></blockquote>
<p>Also alle overwrite Attribute raus und den Test Task rausnehmen:<br />
Den Testtask rausnehmen:</p>
<pre class="brush: xml; title: ; notranslate">
 &lt;fail message=&quot;All features of the build script require Ant version 1.8.2. Please upgrade to 1.8.2 or remove all instances of 'overwrite=no' (and this fail task) from the build script to continue&quot;&gt;
        &lt;condition&gt;
            &lt;not&gt;
                &lt;contains string=&quot;${ant.version}&quot; substring=&quot;1.8.2&quot;/&gt;
            &lt;/not&gt;
        &lt;/condition&gt;
 &lt;/fail&gt;
</pre>
<p>Dann probieren:</p>
<pre class="brush: bash; title: ; notranslate">
cd build
ant
</pre>
<p>Und funktioniert: in publish liegt jetzt das optimierte Web Projekt.</p>
<p>Danach noch die buffer folder leeren, ist nicht unbedingt nötig aber macht Spaß :)</p>
<pre class="brush: bash; title: ; notranslate">ant clean</pre>
<p>Um die Bilder Optimierung anzuschalten, muss ich noch die libs dafür nach installieren:</p>
<pre class="brush: bash; title: ; notranslate">sudo apt-get install libjpeg-progs optipng</pre>
<p>Kleiner Tip noch:<br />
Nutzt man zusätzliche javascript libs, die nicht konkateniert werden sollen, sollte man die nicht zwischen die comments schreiben.<br />
Diese hier:</p>
<pre class="brush: xml; title: ; notranslate">
 &lt;!-- scripts concatenated and minified via ant build script--&gt;
 &lt;!-- end scripts--&gt;
</pre>
<p>Und um es auf die Spitze zu treiben lassen wir mal den vollen minify laufen:</p>
<pre class="brush: bash; title: ; notranslate">ant minify</pre>
<p>Der komprimiert zusätzlich noch das Markup.</p>
<p>Aufräumen:</p>
<pre class="brush: bash; title: ; notranslate">ant clean</pre>
<p>Nun noch den publish folder uploaden:<br />
Ich will ja FTP via ant benutzen also vorher die Abhängigkeiten davon installieren, siehe hier in einem alten <a href="https://nerdpress.org/2011/07/29/install-ant-ftp-task-on-ubuntu/">Post</a> von mir.<br />
Außerdem muss man noch die FTP properties angeben, das passiert in config/project.properties:</p>
<pre class="brush: bash; title: ; notranslate">
 #FTP deploy
 tool.ftp.host = host
 tool.ftp.user = user
 tool.ftp.password = password
 tool.ftp.remotedir = httpdocs
</pre>
<p>Holt man sich die boilerplate direkt von <a href="https://github.com/paulirish/html5-boilerplate">github</a>, ist da eine Neuerung drin, welche erlaubt den Build zu erweitern, indem man eine project.xml anlegt und darin seine eigenen targets anlegen kann.<br />
Benutzt man die letzte stable version muss man den task direkt in die build.xml schreiben.</p>
<p>Der FTP task ist ganz simpel ohne Spirenzien:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;target name=&quot;ftpupload&quot; description=&quot;uploads the publish folder to your web space via ftp&quot;&gt;
	&lt;ftp server=&quot;${tool.ftp.host}&quot; userid=&quot;${tool.ftp.user}&quot; password=&quot;${tool.ftp.password}&quot; timediffauto=&quot;false&quot; remotedir=&quot;${tool.ftp.remotedir}&quot; action=&quot;send&quot; verbose=&quot;yes&quot; passive=&quot;yes&quot; depends=&quot;yes&quot;&gt;
            &lt;fileset dir=&quot;${dir.publish}&quot;&gt;
            &lt;/fileset&gt;
        &lt;/ftp&gt;
&lt;/target&gt;
</pre>
<p>Dann mal uploaden:</p>
<pre class="brush: bash; title: ; notranslate">ant ftpupload</pre>
<p>Komplett ist das dann so:</p>
<pre class="brush: bash; title: ; notranslate">
 ant minify
 ant ftpupload
 ant clean
</pre>The post <a href="https://nerdpress.org/2011/09/13/boilerplate-build-mit-ftp-deploy/">Boilerplate Build mit FTP deploy</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
					<wfw:commentRss>https://nerdpress.org/2011/09/13/boilerplate-build-mit-ftp-deploy/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>install ant ftp task on ubuntu</title>
		<link>https://nerdpress.org/2011/07/29/install-ant-ftp-task-on-ubuntu/</link>
		
		<dc:creator><![CDATA[Ivo Bathke]]></dc:creator>
		<pubDate>Fri, 29 Jul 2011 15:17:18 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=1551</guid>

					<description><![CDATA[<p>Tired of manually uploading your changes via FTP? And no shell because your client cant/wont buy a hosting package for real men? Then go for ant and its ftp task! Install it on ubuntu like so (given you have ant and java already): cd ~ wget http://apache.openmirror.de//commons/net/binaries/commons-net-1.4.1.tar.gz tar -zxvf commons-net-1.4.1.tar.gz sudo cp commons-net-1.4.1/commons-net-1.4.1.jar /usr/share/ant/lib rm &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2011/07/29/install-ant-ftp-task-on-ubuntu/" class="more-link">Continue reading<span class="screen-reader-text"> "install ant ftp task on ubuntu"</span></a></p>
The post <a href="https://nerdpress.org/2011/07/29/install-ant-ftp-task-on-ubuntu/">install ant ftp task on ubuntu</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p>Tired of manually uploading your changes via FTP?<br />
And no shell because your client cant/wont buy a hosting package for real men?</p>
<p>Then go for <strong>ant</strong> and its <strong>ftp task</strong>!</p>
<p>Install it on ubuntu like so (given you have ant and java already):</p>
<p><span id="more-1551"></span></p>
<pre class="brush: bash; title: ; notranslate">
cd ~
wget http://apache.openmirror.de//commons/net/binaries/commons-net-1.4.1.tar.gz
tar -zxvf commons-net-1.4.1.tar.gz
sudo cp commons-net-1.4.1/commons-net-1.4.1.jar /usr/share/ant/lib
rm -rf commons-net-1.4.1
rm -rf commons-net-1.4.1.tar.gz

wget http://archive.apache.org/dist/jakarta/oro/jakarta-oro-current.tar.gz
tar -zxvf jakarta-oro-current.tar.gz
sudo cp jakarta-oro-2.0.8/jakarta-oro-2.0.8.jar /usr/share/ant/lib
rm -rf jakarta-oro-2.0.8
rm -rf jakarta-oro-current.tar.gz
</pre>
<p>Butz!<br />
Now make your self an build.xml file in your projects root and do:</p>
<pre class="brush: bash; title: ; notranslate">
cd myproject
ant
</pre>
<p>Wahnsinn!</p>The post <a href="https://nerdpress.org/2011/07/29/install-ant-ftp-task-on-ubuntu/">install ant ftp task on ubuntu</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3 x YuiCompressor im Deploy</title>
		<link>https://nerdpress.org/2011/02/11/3-x-yuicompressor-im-deploy/</link>
					<comments>https://nerdpress.org/2011/02/11/3-x-yuicompressor-im-deploy/#comments</comments>
		
		<dc:creator><![CDATA[Ivo Bathke]]></dc:creator>
		<pubDate>Fri, 11 Feb 2011 15:06:26 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[yuicompressor]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=1357</guid>

					<description><![CDATA[<p>6 million ways to deploy, choose one Die Aufgabe ist mit dem yuicompressor alle css files einzeln zu komprimieren. Concatenation lasse ich weg. Wir haben zur Auswahl 2 x mal als ant deploy und einmal die gute alte shell. Das yuicompressor jar ist “installiert” und liegt hier: /usr/share/ant/lib/yuicompressor.jar Und es kann losgehen: 1. ant via &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2011/02/11/3-x-yuicompressor-im-deploy/" class="more-link">Continue reading<span class="screen-reader-text"> "3 x YuiCompressor im Deploy"</span></a></p>
The post <a href="https://nerdpress.org/2011/02/11/3-x-yuicompressor-im-deploy/">3 x YuiCompressor im Deploy</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p><em>6 million ways to deploy, choose one</em></p>
<p>Die Aufgabe ist mit dem <a href="http://developer.yahoo.com/yui/compressor/">yuicompressor</a> alle css files einzeln zu komprimieren.<br />
Concatenation lasse ich weg.<br />
Wir haben zur Auswahl 2 x mal als <strong>ant</strong> deploy und einmal die gute alte <strong>shell</strong>.</p>
<p>Das yuicompressor jar ist “installiert” und liegt hier:</p>
<pre class="brush: bash; title: ; notranslate">
/usr/share/ant/lib/yuicompressor.jar
</pre>
<p>Und es kann losgehen:</p>
<p><span id="more-1357"></span></p>
<p><strong>1. ant via apply task</strong></p>
<p>Ein Property (im externen property file) für das jar:</p>
<pre class="brush: bash; title: ; notranslate">
yuicompressor=/usr/share/ant/lib/yuicompressor.jar
</pre>
<p>Und nun der task:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;target name=&quot;minifyCSS&quot;&gt;
		&lt;apply executable=&quot;java&quot; parallel=&quot;false&quot; verbose=&quot;true&quot; dest=&quot;${buildir}/project/${updateChannelTemp}/&quot;&gt;
			&lt;fileset dir=&quot;${updateChannelTemp}/${SvnExportDir}/scripts/&quot; includes=&quot;*.css&quot; excludes=&quot;*.min.css&quot;/&gt;
			&lt;arg line=&quot;-jar&quot;/&gt;
			&lt;arg path=&quot;${yuicompressor}&quot;/&gt;
			&lt;arg line=&quot;-v&quot;/&gt;
			&lt;arg line=&quot;--charset latin1&quot;/&gt;
			&lt;srcfile /&gt;
			&lt;arg line=&quot;-o&quot;/&gt;
			&lt;mapper type=&quot;glob&quot; from=&quot;*.css&quot; to=&quot;*.css&quot;/&gt;
			&lt;targetfile/&gt;
		&lt;/apply&gt;
		&lt;move todir=&quot;${buildir}/project/${updateChannelTemp}/${SvnExportDir}/scripts/&quot; overwrite=&quot;true&quot;&gt;
			&lt;fileset dir=&quot;${buildir}/project/${updateChannelTemp}/&quot; includes=&quot;*.css&quot; /&gt;
		&lt;/move&gt;
&lt;/target&gt;
</pre>
<p><strong>2. ant via yui-compressor task</strong></p>
<p>Dazu brauch es noch ein paar Vorbereitungen:</p>
<p>Hierzu muss das Task noch “<a href="http://javaflight.blogspot.com/2008/01/introducing-yui-compressor-ant-task.html">installiert</a>” werden, ich packs mal zu den anderen jars und dazu ein Property:</p>
<pre class="brush: bash; title: ; notranslate">
yuicompressortask=/usr/share/ant/lib/yui-compressor-task.jar
</pre>
<p>Weiterhin den Ant ClassPath:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;path id=&quot;project.classpath&quot;&gt;
		&#x5B;...]
&lt;pathelement location=&quot;${yuicompressortask}&quot; /&gt;
		&lt;pathelement location=&quot;${yuicompressor}&quot; /&gt;
&lt;/path&gt;
</pre>
<p>Den Task definieren:</p>
<pre class="brush: bash; title: ; notranslate">
&lt;taskdef name=&quot;yui-compressor&quot; classname=&quot;net.noha.tools.ant.yuicompressor.tasks.YuiCompressorTask&quot;&gt;
</pre>
<p>und das eigentliche Target:</p>
<pre class="brush: bash; title: ; notranslate">
&lt;target name=&quot;minifyCSS2&quot;&gt;
&lt;mkdir dir=&quot;${updateChannelTemp}/${SvnExportDir}/scripts/css/&quot;/&gt;
&lt;yui-compressor 
    warn=&quot;false&quot; 
    munge=&quot;true&quot; 
    cssSuffix=&quot;.css&quot;
    jsSuffix=&quot;.js&quot; 
    preserveallsemicolons=&quot;false&quot; 
    fromdir=&quot;${updateChannelTemp}/${SvnExportDir}/scripts/&quot; 
    todir=&quot;${updateChannelTemp}/${SvnExportDir}/scripts/css/&quot;&gt;
  &lt;include name=&quot;*.css&quot; /&gt;
&lt;/yui-compressor&gt;
&lt;move todir=&quot;${updateChannelTemp}/${SvnExportDir}/scripts/&quot; overwrite=&quot;true&quot;&gt;
		&lt;fileset dir=&quot;${updateChannelTemp}/${SvnExportDir}/scripts/css/&quot; includes=&quot;*.css&quot; /&gt;
&lt;/move&gt;
&lt;delete dir=&quot;${updateChannelTemp}/${SvnExportDir}/scripts/css/&quot; /&gt;
&lt;/target&gt;
</pre>
<p><strong>3. via shell</strong></p>
<pre class="brush: bash; title: ; notranslate">
java -jar /usr/share/ant/lib/yuicompressor.jar --type -v css &lt; /home/builds/project/css/*.css &gt; /home/builds/project/css/*.css
</pre>
<p>Fazit:<br />
Ich <del>hasse</del> liebe <strong>ant</strong>.<br />
<em>Achtung: keine Gewähr, dass das die snippets funktionieren, weil ziemlich aus dem Kontext gerissen.</em><br />
Ich wollte nur mal verdeutlichen was für ein overhead <strong>ant</strong> manchmal erzeugt.<br />
Ich benutze es trotzdem ;)</p>The post <a href="https://nerdpress.org/2011/02/11/3-x-yuicompressor-im-deploy/">3 x YuiCompressor im Deploy</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
					<wfw:commentRss>https://nerdpress.org/2011/02/11/3-x-yuicompressor-im-deploy/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Ant Ftp Task und NullPointerException</title>
		<link>https://nerdpress.org/2010/02/02/ant-ftp-task-und-nullpointerexception/</link>
		
		<dc:creator><![CDATA[Ivo Bathke]]></dc:creator>
		<pubDate>Tue, 02 Feb 2010 15:11:48 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Ant]]></category>
		<guid isPermaLink="false">https://nerdpress.org/?p=799</guid>

					<description><![CDATA[<p>Ich benutze ja Ant zum deployen, noch jedenfalls, weil die Installation und Konfiguration mir doch immer mal wieder Kopfzerbrechen bereitet. := Damit hole ich die HEAD Rev oder ein stable tag aus SVN, mach noch ein paar Fileoperations, wie Live Configs reinkopieren, .htaccess vorbereiten etc. und jage die files dann, für die Standard Hosting Packete, &#8230; </p>
<p class="link-more"><a href="https://nerdpress.org/2010/02/02/ant-ftp-task-und-nullpointerexception/" class="more-link">Continue reading<span class="screen-reader-text"> "Ant Ftp Task und NullPointerException"</span></a></p>
The post <a href="https://nerdpress.org/2010/02/02/ant-ftp-task-und-nullpointerexception/">Ant Ftp Task und NullPointerException</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></description>
										<content:encoded><![CDATA[<p>Ich benutze ja Ant zum deployen, noch jedenfalls, weil die Installation und Konfiguration mir doch immer mal wieder Kopfzerbrechen bereitet. :=</p>
<p>Damit hole ich die HEAD Rev oder ein stable tag aus SVN, mach noch ein paar Fileoperations, wie Live Configs reinkopieren, .htaccess vorbereiten etc.<br />
und jage die files dann, für die Standard Hosting Packete, mit FTP hoch. Dabei benutze ich noch die <em>timediffauto</em> Option, um nur die geänderten Files hochzuladen.</p>
<p>Nachdem wir hier den DeployServer neu gemacht haben, schmiess der FTP Task allerdings eine <strong>NullPointerException</strong>, die ich mir nicht erklären konnte, eigentlich war alles wie vorher.<br />
Letztlich konnte ich es dann auf das <em>timediffauto</em> Attribut einkreisen und nach langem grübeln und googeln dann die Lösung:<br />
<span id="more-799"></span><br />
Wir haben ein deutsches Debian Lenny installiert, das war vorher nicht so, sondern Englisch.<br />
Die meisten Hosting Server scheinen auch Englische zu sein und da kam Ant ins straucheln.</p>
<p>Dank dieses <a href="http://www.mail-archive.com/dev@ant.apache.org/msg37208.html">Post</a> hab ich dann die build.xml angepaßt und diese Attribute eingefügt:</p>
<pre class="brush: xml; title: ; notranslate">
serverLanguageCodeConfig=&quot;en&quot; 
shortMonthNamesConfig=&quot;jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec&quot;
</pre>
<p>Wie es auch hier steht: <a href="http://ant.apache.org/manual/OptionalTasks/ftp.html">http://ant.apache.org/manual/OptionalTasks/ftp.html</a></p>
<p>Fertig sieht der Task dann so aus:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;target name=&quot;startFTPTest&quot; depends=&quot;check-cond&quot; if=&quot;test&quot;&gt;
		&lt;move file=&quot;${updateChannelTemp}/${SvnExportDir}/.test.htaccess&quot; tofile=&quot;${updateChannelTemp}/${SvnExportDir}/.htaccess&quot;/&gt;
		&lt;ftp server=&quot;${ftpSite}&quot; userid=&quot;${ftpUsername}&quot; password=&quot;${ftpPassword}&quot; serverLanguageCodeConfig=&quot;en&quot; shortMonthNamesConfig=&quot;jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec&quot; remotedir=&quot;${remoteDirTest}&quot; action=&quot;send&quot; verbose=&quot;yes&quot; passive=&quot;yes&quot; depends=&quot;yes&quot;&gt;	
			&lt;fileset dir=&quot;${updateChannelTemp}/${SvnExportDir}&quot; includes=&quot;**/*.php,**/*.css,**/*.html,**/*.js,**/*.gif,**/*.png,**/*.jpg,**/*.htaccess&quot; excludes=&quot;**/install/**,**/configure.php**,**/*.test.htaccess&quot;&gt;
			&lt;/fileset&gt;
		&lt;/ftp&gt;
&lt;/target&gt; 
</pre>
<p> und dann lief es wieder.</p>The post <a href="https://nerdpress.org/2010/02/02/ant-ftp-task-und-nullpointerexception/">Ant Ftp Task und NullPointerException</a> first appeared on <a href="https://nerdpress.org">Nerdpress.org</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
