123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <project default="build-test" basedir=".">
-
- <target name="info">
- <echo>
- This script verifies that the example build script in the
- Ant section of the development environment guide works.
-
- The target "build-test" should be exactly what's copied from
- the development environment guide, as rendered.
-
- To setup for a given version of AspectJ, either build the
- tools distribution or define the variable aspectj.home.
-
- This should build the two input jars and then run the
- test, which builds and runs an application. It should
- request incremental input (press "q{enter}" to quit)
- and emit the text:
-
- [java] called Util.utility("persistMe shouting!")
- [java] set persistMe to PERSISTME SHOUTING!
-
- Use the "clean" target to remove generated files.
-
- When running from eclipse, set fork.iajc="true" and
- change build-test iajc call to avoid incremental mode.
-
- </echo>
- </target>
-
- <target name="init">
- <property name="fork.iajc"
- value="false"/>
- <property name="home.dir"
- location="${basedir}"/>
- <property name="aspectj.modules.dir"
- location="../../.."/>
- <property name="aspectj.home"
- location="${aspectj.modules.dir}/aj-build/dist/tools"/>
-
- <available property="aspectj.home.available"
- file="${aspectj.home}/lib/aspectjtools.jar"/>
-
- <available property="aspectjtools.jar.available"
- file="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/>
- <available property="aspectjrt.jar.available"
- file="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/>
-
- <available property="persist.jar.available"
- file="${home.dir}/ec/int/persist.jar"/>
- <available property="module.jar.available"
- file="${home.dir}/build/module.jar"/>
- </target>
-
- <target name="taskdef" depends="init,local.aspectj.setup">
- <taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties">
- <classpath>
- <path location="${home.dir}/tools/aspectj/lib/aspectjtools.jar"/>
- </classpath>
- </taskdef>
- </target>
-
- <target name="clean" depends="init">
- <delete quiet="on">
- <fileset dir="${home.dir}"
- includes="ec/int/persist.jar,
- build/module.jar,
- output/application.jar,
- tools/aspectj/lib/aspectj*.jar"/>
- </delete>
- </target>
-
- <target name="local.aspectj.setup" depends="init"
- unless="aspectjtools.jar.available,aspectjrt.jar.available">
- <fail unless="aspectj.home.available"
- message="define or build aspectj.home: ${aspectj.home}"/>
- <mkdir dir="${home.dir}/tools/aspectj/lib/"/>
- <copy todir="${home.dir}/tools/aspectj/lib"
- filtering="off">
- <fileset dir="${aspectj.home}/lib" includes="aspectj*.jar"/>
- </copy>
- <available property="aspectjtools.jar.available"
- file="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/>
- <available property="aspectjrt.jar.available"
- file="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/>
- </target>
-
- <target name="setup" depends="init,taskdef,local.aspectj.setup"
- unless="module.jar.available,persist.jar.available">
- <iajc outJar="${home.dir}/ec/int/persist.jar"
- failonerror="true"
- fork="${fork.iajc}"
- sourceroots="${home.dir}/ec/int/src"
- classpath="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/>
- <iajc outJar="${home.dir}/build/module.jar"
- failonerror="true"
- fork="${fork.iajc}"
- sourceroots="${home.dir}/ec/module/src"
- classpath="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/>
- </target>
-
- <target name="build-test" depends="init,taskdef,setup"
- description="test Ant script from the devguide">
- <!-- copy this from the Ant section of the rendered devguide -->
- <!-- in eclipse, must run forked and not incremental -->
- <iajc outjar="${home.dir}/output/application.jar"
- injars="${home.dir}/build/module.jar"
- copyInjars="true"
- fork="${fork.iajc}"
- sourceRootCopyFilter="**/CVS/*,**/*.java"
- incremental="false" >
- <sourceroots>
- <pathelement location="${home.dir}/ec/project/src"/>
- <pathelement location="${home.dir}/ec/project/testsrc"/>
- </sourceroots>
- <aspectpath>
- <pathelement location="${home.dir}/ec/int/persist.jar"/>
- </aspectpath>
- <classpath>
- <pathelement location="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/>
- </classpath>
- </iajc>
-
- <java classname="org.smart.app.Main">
- <classpath>
- <pathelement location="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/>
- <pathelement location="${home.dir}/ec/int/persist.jar"/>
- <pathelement location="${home.dir}/output/application.jar"/>
- </classpath>
- </java>
- </target>
-
- </project>
|