RSS Feed
^__^

Ant Ftp Task und NullPointerException

,

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, mit FTP hoch. Dabei benutze ich noch die timediffauto Option, um nur die geänderten Files hochzuladen.

Nachdem wir hier den DeployServer neu gemacht haben, schmiess der FTP Task allerdings eine NullPointerException, die ich mir nicht erklären konnte, eigentlich war alles wie vorher.
Letztlich konnte ich es dann auf das timediffauto Attribut einkreisen und nach langem grübeln und googeln dann die Lösung:

Wir haben ein deutsches Debian Lenny installiert, das war vorher nicht so, sondern Englisch.
Die meisten Hosting Server scheinen auch Englische zu sein und da kam Ant ins straucheln.

Dank dieses Post hab ich dann die build.xml angepaßt und diese Attribute eingefügt:

serverLanguageCodeConfig="en" 
shortMonthNamesConfig="jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec"

Wie es auch hier steht: http://ant.apache.org/manual/OptionalTasks/ftp.html

Fertig sieht der Task dann so aus:

<target name="startFTPTest" depends="check-cond" if="test">
		<move file="${updateChannelTemp}/${SvnExportDir}/.test.htaccess" tofile="${updateChannelTemp}/${SvnExportDir}/.htaccess"/>
		<ftp server="${ftpSite}" userid="${ftpUsername}" password="${ftpPassword}" serverLanguageCodeConfig="en" shortMonthNamesConfig="jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec" remotedir="${remoteDirTest}" action="send" verbose="yes" passive="yes" depends="yes">	
			<fileset dir="${updateChannelTemp}/${SvnExportDir}" includes="**/*.php,**/*.css,**/*.html,**/*.js,**/*.gif,**/*.png,**/*.jpg,**/*.htaccess" excludes="**/install/**,**/configure.php**,**/*.test.htaccess">
			</fileset>
		</ftp>
</target> 

und dann lief es wieder.

Leave a Reply

Your email address will not be published. Required fields are marked *