<?xml version="1.0" encoding="UTF-8"?> <project xmlns:ivy="antlib:org.apache.ivy.ant" name="My Vaadin Hello World" basedir="." default="compile.all"> <target name="configure"> <property file="${basedir}/src/main/resources/Application.properties"/> <property name="main.dir" value="${basedir}/src/main" /> <property name="run.dir" value="${basedir}/src/run" /> <property name="build.dir" value="${basedir}/build"/> <property name="dist.dir" value="${basedir}/dist"/> <property name="src.dir" value="${main.dir}/java" /> <property name="web.dir" value="${main.dir}/WebContent"/> <property name="resources.dir" value="${main.dir}/resources"/> <property name="classes.dir" value="${build.dir}/WEB-INF/classes"/> <property name="lib.dir" value="${build.dir}/WEB-INF/lib"/> <property name="war.name" value="${app.name}-${app.version}.war"/> <property name="jar.name" value="${app.name}-${app.version}.jar"/> <property name="run.name" value="ch.asynk.Main"/> <property name="compile.debug" value="true"/> <property name="compile.deprecation" value="false"/> <property name="compile.optimize" value="true"/> <property file="${basedir}/tomcat.properties"/> <path id="cp.tomcat"> <fileset dir="${catalina.home}/bin"> <include name="*.jar"/> </fileset> <fileset dir="${catalina.home}/lib"> <include name="*.jar"/> </fileset> </path> <taskdef classpathref="cp.tomcat" resource="org/apache/catalina/ant/catalina.tasks" /> <path id="cp.build"> <dirset dir="${classes.dir}" /> </path> </target> <target name="resolve" description="retrieve dependencies with Ivy"> <ivy:resolve file="ivy.xml" log="download-only"/> <ivy:cachepath pathid="ivy.deps.server-side" conf="server-side" /> <ivy:cachepath pathid="ivy.deps.themes" conf="themes" /> <ivy:cachepath pathid="ivy.deps.widgetsets" conf="widgetsets" /> <ivy:cachepath pathid="ivy.deps.run" conf="run" /> <ivy:cachefileset setid="ivy.deps.run.fileset" conf="run" /> <ivy:cachefileset setid="ivy.deps.server-side.fileset" conf="server-side"/> </target> <target name="ivy-report" depends="configure,resolve"> <ivy:report conf="server-side" organisation="ch.asynk" module="${app.name}"/> </target> <target name="clean" depends="configure" description="clean project"> <delete dir="${build.dir}" /> <delete dir="${dist.dir}" /> <delete file="build.log" /> <delete file="test.log" /> <delete file="ivy-report.css" /> <delete> <fileset dir="${basedir}" includes="ch.asynk-${app.name}-*"/> <fileset dir="${basedir}" includes="**/*.cache"/> </delete> </target> <target name="ctags" depends="configure"> <exec executable="ctags" failonerror="false"> <arg value="-R"/> <arg value="--language-force=java"/> <arg value="-f.tags"/> <arg value="${src.dir}"/> </exec> </target> <target name="-compile.theme" > <property name="theme.dir" value="${build.dir}/VAADIN/themes/${theme}" /> <delete dir="${theme.dir}"/> <mkdir dir="${theme.dir}"/> <java classname="com.vaadin.sass.SassCompiler" failonerror="yes" fork="true"> <classpath refid="ivy.deps.themes"/> <jvmarg value="-Djava.awt.headless=true"/> <arg value="-ignore-warnings:true"/> <arg value="-compress:true"/> <arg value="-minify:true"/> <arg value="${web.dir}/VAADIN/themes/${theme}/styles.scss"/> <arg value="${theme.dir}/styles.css"/> </java> </target> <target name="compile.themes" description="compile application's themes" depends="configure,resolve"> <antcall target="-compile.theme" inheritRefs="true"> <param name="theme" value="mytheme"/> </antcall> </target> <target name="-compile.widgetset"> <property name="widgetset.dir" value="${build.dir}/VAADIN/widgetsets/${widgetset}" /> <delete dir="${widgetset.dir}"/> <mkdir dir="${widgetset.dir}"/> <java classname="com.google.gwt.dev.Compiler" failonerror="yes" fork="true"> <classpath refid="ivy.deps.widgetsets"/> <classpath> <dirset dir="${web.dir}/VAADIN/widgetsets"/> </classpath> <jvmarg value="-Djava.awt.headless=true"/> <arg value="-war"/> <arg value="${build.dir}/VAADIN/widgetsets"/> <arg value="${widgetset}"/> <arg value="-logLevel"/> <arg value="ERROR"/> <arg value="-strict"/> <arg value="-optimize"/> <arg value="9"/> </java> </target> <target name="compile.widgetsets" description="compile application's widgetsets" depends="configure,resolve"> <antcall target="-compile.widgetset" inheritRefs="true"> <param name="widgetset" value="mywidgetset"/> </antcall> </target> <target name="compile.app" description="compile server side components" depends="configure,resolve,ctags"> <record name="build.log" loglevel="verbose" action="start" /> <mkdir dir="${classes.dir}" /> <javac srcdir="${main.dir}" destdir="${classes.dir}" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}" includeantruntime="false"> <classpath refid="cp.tomcat"/> <classpath refid="ivy.deps.server-side"/> <compilerarg value="-Xlint:all"/> <compilerarg value="-Xlint:-path"/> <compilerarg value="-Xlint:-processing"/> <compilerarg value="-Xmaxerrs"/> <compilerarg value="10"/> </javac> <copy todir="${classes.dir}"> <fileset dir="${src.dir}"> <include name="**/*.js"/> </fileset> </copy> </target> <target name="compile.all" description="compile everything" depends="compile.app,compile.themes,compile.widgetsets"/> <target name="war" description="build war package" depends="configure,resolve"> <mkdir dir="${lib.dir}"/> <copy todir="${lib.dir}" flatten="true"> <fileset refid="ivy.deps.server-side.fileset"/> </copy> <delete> <fileset dir="${lib.dir}"> <include name="**/*-sources.jar"/> <include name="**/*-javadoc.jar"/> </fileset> </delete> <delete file="${dist.dir}/${war.name}"/> <war destfile="${dist.dir}/${war.name}" webxml="${web.dir}/WEB-INF/web.xml"> <zipfileset dir="${resources.dir}" prefix="WEB-INF/classes"/> <classes dir="${classes.dir}" includes="**" /> <zipfileset dir="${build.dir}/VAADIN/themes" prefix="VAADIN/themes"/> <zipfileset dir="${build.dir}/VAADIN/widgetsets" prefix="VAADIN/widgetsets"/> <fileset dir="${web.dir}"> <patternset> <include name="*.html" /> <include name="VAADIN/widgetsets/**/*" /> <include name="VAADIN/themes/**/fonts/**/*" /> <include name="VAADIN/themes/**/icons/**/*" /> <include name="VAADIN/themes/**/images/**/*" /> <include name="WEB-INF/lib/*" /> <include name="WEB-INF/*.xml" /> </patternset> </fileset> <zipfileset dir="${lib.dir}" prefix="WEB-INF/lib"/> </war> </target> <target name="compile.run" depends="configure,resolve"> <mkdir dir="${build.dir}/run" /> <javac srcdir="${run.dir}" destdir="${build.dir}/run" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}" includeantruntime="false"> <classpath refid="cp.build"/> <classpath refid="ivy.deps.run"/> <compilerarg value="-Xlint:all"/> <compilerarg value="-Xlint:-path"/> <compilerarg value="-Xlint:-processing"/> <compilerarg value="-Xmaxerrs"/> <compilerarg value="10"/> </javac> </target> <target name="run" description="run jetty in source tree" depends="configure,resolve"> <java classname="${run.name}" fork="true"> <classpath> <dirset dir="${build.dir}/run" /> <dirset dir="${resources.dir}" /> <dirset dir="${run.dir}/resources" /> <dirset dir="${build.dir}" /> </classpath> <classpath refid="cp.build"/> <classpath refid="ivy.deps.run"/> <jvmarg value="-DTEST=1"/> </java> </target> <target name="-jar.deps.check" unless="-jar.deps.exists"> <available property="-jar.deps.exists" file="dist/deps.jar"/> </target> <target name="-jar.deps" unless="-jar.deps.exists" depends="configure,resolve"> <jar jarfile="dist/deps.jar"> <zipgroupfileset refid="ivy.deps.run.fileset"/> </jar> </target> <target name="jar" description="build runnable jar" depends="-jar.deps.check,-jar.deps"> <delete file="${dist.dir}/${jar.name}"/> <jar jarfile="${dist.dir}/${jar.name}"> <manifest> <attribute name="Main-Class" value="${run.name}"/> <attribute name="Class-Path" value="."/> </manifest> <fileset dir="${resources.dir}"/> <fileset dir="${run.dir}/resources"/> <fileset dir="${classes.dir}"/> <fileset dir="${build.dir}/run"/> <zipfileset dir="${build.dir}/VAADIN/themes" prefix="VAADIN/themes"/> <zipfileset dir="${build.dir}/VAADIN/widgetsets" prefix="VAADIN/widgetsets"/> <fileset dir="${web.dir}"> <patternset> <include name="WEB-INF/*.xml" /> <include name="WEB-INF/lib/*" /> <include name="*.html" /> <include name="VAADIN/widgetsets/**/*" /> <include name="VAADIN/themes/**/fonts/**/*" /> <include name="VAADIN/themes/**/icons/**/*" /> <include name="VAADIN/themes/**/images/**/*" /> </patternset> </fileset> <zipfileset src="dist/deps.jar" excludes="META-INF/*"/> </jar> <echo message="$ java -DWEBROOT=/tmp -DTEST=1 -jar ${jar.name}"/> </target> <target name="run.jar" description="run jetty from application jar" depends="configure"> <java jar="${dist.dir}/${jar.name}" fork="true"> <jvmarg value="-DTEST=1"/> </java> </target> <!-- tomcat specific targets --> <target name="remove" depends="configure" description="remove application on servlet container"> <undeploy url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}" failonerror="false"/> </target> <target name="install" depends="war,remove" description="install application to servlet container"> <copy todir="/tmp" file="${dist.dir}/${war.name}"/> <deploy url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}" localWar="file://tmp/${war.name}"/> <delete file="/tmp/${war.name}"/> </target> </project>