+---ant | | step1.ant.xml | | step2.ant.xml | | step3.ant.xml | | step4.ant.xml | | step5.ant.xml | | step6.ant.xml | | | \---env | default.properties | semenych.properties | +---lib | \---google-gson-1.4 | gson-1.4-javadoc.jar | gson-1.4-sources.jar | gson-1.4.jar | +---src | \---java | \---com | \---dataart | \---ant | \---demo | Test.java | \---web \---WEB-INF | web.xml | \---lib <project name="step1" default="compile">
<target name="compile"> <mkdir dir="../.build/classes"/> <javac srcdir="../src/java" destdir="../.build/classes"> <classpath location="../lib/google-gson-1.4/gson-1.4.jar"/> </javac> </target> </project> <project name="step2" default="compile"> <property name="dir.build" value="../.build"/> <property name="dir.classes" value="${dir.build}/classes"/> <property name="dir.src.java" value="../src/java"/> <target name="clean"> <delete dir="${dir.build}"/> </target> <target name="mkdirs"> <mkdir dir="${dir.classes}"/> </target> <target name="compile" depends="mkdirs"> <javac srcdir="${dir.src.java}" destdir="${dir.classes}"> <classpath location="../lib/google-gson-1.4/gson-1.4.jar"/> </javac> </target> </project> <project name="step3" default="compile"> <property name="dir.build" value="../.build"/> <property name="dir.classes" value="${dir.build}/classes"/> <property name="dir.src.java" value="../src/java"/> <property name="dir.lib" value="../lib"/> <path id="libs.gson"> <fileset dir="${dir.lib}/google-gson-1.4"> <include name="*.jar"/> </fileset> </path> <path id="libs.main.module"> <path refid="libs.gson"/> </path> <target name="clean"> <delete dir="${dir.build}"/> </target> <target name="mkdirs"> <mkdir dir="${dir.classes}"/> </target> <target name="compile" depends="mkdirs"> <javac srcdir="${dir.src.java}" destdir="${dir.classes}"> <classpath> <path refid="libs.main.module"/> </classpath> </javac> </target> </project> <project name="step4" default="compile"> <property name="dir.build" value="../.build"/> <property name="dir.classes" value="${dir.build}/classes"/> <property name="dir.src.java" value="../src/java"/> <property name="dir.lib" value="../lib"/> <property name="dir.env" value="./env"/> <property name="assembled.properties" value="${dir.build}/assembled.properties"/> <path id="libs.gson"> <fileset dir="${dir.lib}/google-gson-1.4"> <include name="*.jar"/> </fileset> </path> <path id="libs.main.module"> <path refid="libs.gson"/> </path> <target name="clean"> <delete dir="${dir.build}"/> </target> <target name="mkdirs"> <mkdir dir="${dir.build}"/> <mkdir dir="${dir.classes}"/> </target> <target name="init" depends="mkdirs"> <property name="env" value="${user.name}"/> <echo level="info" message="env=${env}"/> <available file="${dir.env}/${env}.properties" property="env.props.available"/> <fail unless="env.props.available" message="No such file: ${dir.env}/${env}.properties"/> <property file="${dir.env}/${env}.properties"/> <property file="${dir.env}/default.properties"/> <echoproperties destfile="${assembled.properties}"/> <filter filtersfile="${assembled.properties}"/> </target> <target name="compile" depends="init"> <javac srcdir="${dir.src.java}" destdir="${dir.classes}"> <classpath> <path refid="libs.main.module"/> </classpath> </javac> </target> </project> welcome.file=default.html tomcat.service.name=tomcat6 tomcat.home=C:/bin/tomcat6 welcome.file=index.html ant -Denv=mihalych compile <project name="step5" default="compile"> <property name="dir.build" value="../.build"/> <property name="dir.classes" value="${dir.build}/classes"/> <property name="dir.src.java" value="../src/java"/> <property name="dir.lib" value="../lib"/> <property name="dir.env" value="./env"/> <property name="dir.war.content" value="${dir.build}/war.content"/> <property name="assembled.properties" value="${dir.build}/assembled.properties"/> <property name="file.jar" value="${dir.build}/main.module.jar"/> <property name="name.application" value="demo"/> <property name="file.war" value="${dir.build}/${name.application}.war"/> <path id="libs.gson"> <fileset dir="${dir.lib}/google-gson-1.4"> <include name="*.jar"/> </fileset> </path> <path id="libs.main.module"> <path refid="libs.gson"/> </path> <target name="clean"> <delete dir="${dir.build}"/> </target> <target name="mkdirs"> <mkdir dir="${dir.build}"/> <mkdir dir="${dir.classes}"/> <mkdir dir="${dir.war.content}"/> </target> <target name="init" depends="mkdirs"> <property name="env" value="${user.name}"/> <echo level="info" message="env=${env}"/> <available file="${dir.env}/${env}.properties" property="env.props.available"/> <fail unless="env.props.available" message="No such file: ${dir.env}/${env}.properties"/> <property file="${dir.env}/${env}.properties"/> <property file="${dir.env}/default.properties"/> <echoproperties destfile="${assembled.properties}"/> <filter filtersfile="${assembled.properties}"/> </target> <target name="compile" depends="init"> <javac srcdir="${dir.src.java}" destdir="${dir.classes}"> <classpath> <path refid="libs.main.module"/> </classpath> </javac> </target> <target name="build.jar" depends="compile"> <jar destfile="${file.jar}" basedir="${dir.classes}" compress="false" index="true"> </jar> </target> <target name="build.war.content" depends="build.jar"> <copy todir="${dir.war.content}" preservelastmodified="true" overwrite="true"> <fileset dir="../web"/> </copy> <copy todir="${dir.war.content}/WEB-INF/lib" preservelastmodified="true"> <path refid="libs.main.module"/> </copy> <copy todir="${dir.war.content}/WEB-INF/lib" preservelastmodified="true" file="${file.jar}"> </copy> <replace dir="${dir.war.content}/WEB-INF/" propertyfile="${assembled.properties}"> <include name="*.xml"/> <replacefilter token="@welcome.file@" property="welcome.file"/> </replace> </target> <target name="build.war" depends="build.war.content"> <delete file="${file.war}"/> <war compress="true" encoding="utf-8" warfile="${file.war}" webxml="${dir.war.content}/WEB-INF/web.xml"> <fileset dir="${dir.war.content}" excludes="WEB-INF/web.xml"/> </war> </target> </project> <replace dir="${dir.war.content}/WEB-INF/" propertyfile="${assembled.properties}"> <include name="*.xml"/> <replacefilter token="@welcome.file@" property="welcome.file"/> </replace> <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>@welcome.file@</welcome-file> </welcome-file-list> </web-app> <project name="step6" default="compile"> <property name="dir.build" value="../.build"/> <property name="dir.classes" value="${dir.build}/classes"/> <property name="dir.src.java" value="../src/java"/> <property name="dir.lib" value="../lib"/> <property name="dir.env" value="./env"/> <property name="dir.war.content" value="${dir.build}/war.content"/> <property name="assembled.properties" value="${dir.build}/assembled.properties"/> <property name="file.jar" value="${dir.build}/main.module.jar"/> <property name="name.application" value="demo"/> <property name="file.war" value="${dir.build}/${name.application}.war"/> <path id="libs.gson"> <fileset dir="${dir.lib}/google-gson-1.4"> <include name="*.jar"/> </fileset> </path> <path id="libs.main.module"> <path refid="libs.gson"/> </path> <target name="clean"> <delete dir="${dir.build}"/> </target> <target name="mkdirs"> <mkdir dir="${dir.build}"/> <mkdir dir="${dir.classes}"/> <mkdir dir="${dir.war.content}"/> </target> <target name="init" depends="mkdirs"> <property name="env" value="${user.name}"/> <echo level="info" message="env=${env}"/> <available file="${dir.env}/${env}.properties" property="env.props.available"/> <fail unless="env.props.available" message="No such file: ${dir.env}/${env}.properties"/> <property file="${dir.env}/${env}.properties"/> <property file="${dir.env}/default.properties"/> <echoproperties destfile="${assembled.properties}"/> <filter filtersfile="${assembled.properties}"/> </target> <target name="compile" depends="init"> <javac srcdir="${dir.src.java}" destdir="${dir.classes}"> <classpath> <path refid="libs.main.module"/> </classpath> </javac> </target> <target name="build.jar" depends="compile"> <jar destfile="${file.jar}" basedir="${dir.classes}" compress="false" index="true"> </jar> </target> <target name="build.war.content" depends="build.jar"> <copy todir="${dir.war.content}" preservelastmodified="true" overwrite="true"> <fileset dir="../web"/> </copy> <copy todir="${dir.war.content}/WEB-INF/lib" preservelastmodified="true"> <path refid="libs.main.module"/> </copy> <copy todir="${dir.war.content}/WEB-INF/lib" preservelastmodified="true" file="${file.jar}"> </copy> <replace dir="${dir.war.content}/WEB-INF/" propertyfile="${assembled.properties}"> <include name="*.xml"/> <replacefilter token="@welcome.file@" property="welcome.file"/> </replace> </target> <target name="build.war" depends="build.war.content"> <delete file="${file.war}"/> <war compress="true" encoding="utf-8" warfile="${file.war}" webxml="${dir.war.content}/WEB-INF/web.xml"> <fileset dir="${dir.war.content}" excludes="WEB-INF/web.xml"/> </war> </target> <target name="deploy" depends="build.war,do.undeploy.war,do.deploy.war"> </target> <target name="do.undeploy.war" depends="init"> <service.stop.win32 service.name="${tomcat.service.name}"/> <delete file="${tomcat.home}/webapps/${name.application}.war" failonerror="false"/> <delete dir="${tomcat.home}/webapps/${name.application}" failonerror="false"/> </target> <target name="do.deploy.war" depends="init"> <copy todir="${tomcat.home}/webapps" failonerror="yes"> <fileset file="${file.war}"/> </copy> <service.start.win32 service.name="${tomcat.service.name}"/> </target> <!-- macro --> <macrodef name="service.stop.win32"> <attribute name="service.name"/> <sequential> <echo>Stoping service: @{service.name}</echo> <exec executable="net" outputproperty="whatsRunning"> <arg value="stop"/> <arg value="@{service.name}"/> </exec> </sequential> </macrodef> <macrodef name="service.start.win32"> <attribute name="service.name"/> <sequential> <echo>Starting service: @{service.name}</echo> <exec executable="net" failonerror="yes"> <arg value="start"/> <arg value="@{service.name}"/> </exec> </sequential> </macrodef> </project> Source: https://habr.com/ru/post/99394/
All Articles