| <html><head> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <title>Ajc10 (ajc)</title><meta name="generator" content="DocBook XSL Stylesheets V1.44"><link rel="home" href="index.html" title="The AspectJtm Development Environment Guide"><link rel="up" href="antTasks.html" title="Chapter 2. AspectJ Ant Tasks"><link rel="previous" href="antTasks-adapter.html" title="Ajc11CompilerAdapter (javac)"><link rel="next" href="antTasks-problems.html" title="Isolating problems running the Ant tasks"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Ajc10 (ajc)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="antTasks-adapter.html">Prev</a> </td><th width="60%" align="center">Chapter 2. AspectJ Ant Tasks</th><td width="20%" align="right"> <a accesskey="n" href="antTasks-problems.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="antTasks-ajc"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="antTasks-ajc"></a>Ajc10 (ajc)</h2></div></div><p> |
| This task handles the same arguments as those used by the AspectJ 1.0 task. |
| This should permit those with existing build scripts using the Ajc Ant |
| task to continue using the same scripts when compiling with 1.1. |
| This will list any use of options no longer supported in 1.1 |
| (e.g., <tt>lenient, strict, workingdir, preprocess, usejavac</tt>,...), |
| and does not provide access to the new features of AspectJ 1.1. |
| (Developers using AspectJ 1.1 only should upgrade their scripts |
| to use AjcTask instead. This will not work for AspectJ 1.2 or later.) |
| </p><div class="sect2"><a name="antTasks-ajc-options"></a><div class="titlepage"><div><h3 class="title"><a name="antTasks-ajc-options"></a>Ajc10 (ajc) Options</h3></div></div><p> |
| </p><p> |
| Most attributes and nested elements are optional. |
| The compiler requires that the same version of |
| <tt>aspectjrt.jar</tt> |
| be specified on the classpath, and that some sources be |
| be specified |
| (using one or more of |
| <tt>argfiles</tt> and |
| <tt>srcdir</tt> (with patterns)). |
| </p><p>Boolean parameters default to <tt>false</tt> |
| unless otherwise stated. |
| </p><div class="table"><p><a name="d0e2060"></a><b>Table 2.6. AjcTask (ajc) options for specifying sources</b></p><table summary="AjcTask (ajc) options for specifying sources" border="1"><colgroup><col><col></colgroup><thead><tr><th>Attribute</th><th>Description</th></tr></thead><tbody><tr><td><p>srcdir |
| </p></td><td><p> |
| The base directory of the java files. |
| See |
| </p></td></tr><tr><td><p>destdir |
| </p></td><td><p> |
| The target directory for the output .class files |
| </p></td></tr><tr><td><p>includes |
| </p></td><td><p> |
| Comma-separated list of patterns of files that must be included. |
| No files are included when omitted. |
| </p></td></tr><tr><td><p>includesfile |
| </p></td><td><p> |
| The path to a file containing include patterns. |
| </p></td></tr><tr><td><p>excludes |
| </p></td><td><p> |
| Comma-separated list of patterns of files that must be excluded. |
| No files (except default excludes) are excluded when omitted. |
| </p></td></tr><tr><td><p>excludesfile |
| </p></td><td><p> |
| The path to a file containing exclude patterns. |
| </p></td></tr><tr><td><p>defaultexcludes |
| </p></td><td><p> |
| If true, then default excludes are used. |
| Default excludes are used when omitted |
| (i.e., defaults to <tt>true</tt>). |
| </p></td></tr><tr><td><p>classpath, classpathref |
| </p></td><td><p> |
| The classpath to use, |
| optionally given as a reference to a classpath Path |
| element defined elsewhere. |
| </p></td></tr><tr><td><p>bootclasspath, bootclasspathref |
| </p></td><td><p> |
| The bootclasspath to use, |
| optionally given as a reference to a bootclasspath Path |
| element defined elsewhere. |
| </p></td></tr><tr><td><p>extdirs |
| </p></td><td><p> |
| Paths to directories containting installed extensions. |
| </p></td></tr><tr><td><p>debug |
| </p></td><td><p> |
| If true, emit debug info in the .class files. |
| </p></td></tr><tr><td><p>deprecation |
| </p></td><td><p> |
| If true, emit messages about use of deprecated API. |
| </p></td></tr><tr><td><p>verbose |
| </p></td><td><p> |
| Emit compiler status messages during the compile. |
| </p></td></tr><tr><td><p>version |
| </p></td><td><p> |
| Emit version information and quit. |
| </p></td></tr><tr><td><p>failonerror |
| </p></td><td><p> |
| If true, throw BuildException to halt build if there |
| are any compiler errors. |
| If false, continue notwithstanding compile errors. |
| Defaults to <tt>true</tt>. |
| </p></td></tr><tr><td><p>source |
| </p></td><td><p> |
| Value of -source option - ignored unless <tt>1.4</tt>. |
| </p></td></tr></tbody></table></div><div class="table"><p><a name="d0e2192"></a><b>Table 2.7. Parameters ignored by the old ajc taskdef, |
| but now supported or buggy</b></p><table summary="Parameters ignored by the old ajc taskdef, 
 but now supported or buggy" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Attribute</th><th>Description</th><th>Supported?</th></tr></thead><tbody><tr><td><p>encoding |
| </p></td><td><p>Default encoding of source files. |
| </p></td><td><p>yes |
| </p></td></tr><tr><td><p>optimize |
| </p></td><td><p> |
| Whether source should be compiled with optimization. |
| </p></td><td><p>yes? |
| </p></td></tr><tr><td><p>target |
| </p></td><td><p> |
| Generate class files for specific VM version, one of |
| [<tt>1.1 1.2</tt>]. |
| </p></td><td><p>yes |
| </p></td></tr><tr><td><p>depend |
| </p></td><td><p> |
| Enables dependency-tracking. |
| </p></td><td><p>no |
| </p></td></tr><tr><td><p>includeAntRuntime |
| </p></td><td><p> |
| Whether to include the Ant run-time libraries. |
| </p></td><td><p>no |
| </p></td></tr><tr><td><p>includeJavaRuntime |
| </p></td><td><p> |
| Whether to include the run-time libraries from the executing VM. |
| </p></td><td><p>no |
| </p></td></tr><tr><td><p>threads |
| </p></td><td><p>Multi-threaded compilation |
| </p></td><td><p>no |
| </p></td></tr></tbody></table></div><p> |
| The following table shows that many of the unique parameters in |
| AspectJ 1.0 are no longer supported. |
| </p><div class="table"><p><a name="d0e2280"></a><b>Table 2.8. Parameters unique to ajc</b></p><table summary="Parameters unique to ajc" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Attribute</th><th>Description</th></tr></thead><tbody><tr><td><p>X |
| </p></td><td><p> |
| comma-delimited list of extended (-X...) options, |
| entered without -X (e.g., |
| <tt>X="lint"</tt> for -Xlint). |
| </p></td></tr><tr><td><p>emacssym |
| </p></td><td><p> |
| Generate symbols for Emacs IDE support. |
| </p></td></tr><tr><td><p>argfiles |
| </p></td><td><p> |
| A comma-delimited list of argfiles that contain a line-delimited |
| list of source file paths (absolute or relative to the argfile). |
| </p></td></tr></tbody></table></div><div class="sect3"><a name="d0e2315"></a><div class="titlepage"><div><h4 class="title"><a name="d0e2315"></a>argfiles - argument list files</h4></div></div><p> |
| An argument file is a file (usually <tt>{file}.lst</tt>) |
| containing a list of source file paths |
| (absolute or relative to the argfile). |
| You can use it to specify all source files to be compiled, |
| which ajc requires to avoid searching every possible source file |
| in the source path when building aspects. |
| If you specify an argfile to the ajc task, it will not include all |
| files in any specified source directory (which is the default |
| behavior for the Javac task when no includes are specified). |
| Conversely, if you specify excludes, they will be removed from |
| the list of files compiled even if they were specified |
| in an argument file. |
| </p><p> |
| The compiler also accepts arguments that are not source files, |
| but the IDE support for such files varies, and Javac does not |
| support them. Be sure to include exactly one argument on each line. |
| </p></div></div><div class="sect2"><a name="antTasks-ajc-nested"></a><div class="titlepage"><div><h3 class="title"><a name="antTasks-ajc-nested"></a>Ajc10 parameters specified as nested elements</h3></div></div><p> |
| This task forms an implicit FileSet and supports all attributes of |
| <tt><fileset></tt> (dir becomes srcdir) as well as |
| the nested |
| <tt><include></tt>, |
| <tt><exclude></tt>, and |
| <tt><patternset></tt> elements. |
| These can be used to specify source files. |
| </p><p> |
| <tt>ajc</tt>'s |
| <tt>srcdir</tt>, |
| <tt>classpath</tt>, |
| <tt>bootclasspath</tt>, |
| <tt>extdirs</tt>, and |
| <tt>jvmarg</tt> |
| attributes are path-like structures and can also be set via nested |
| <tt><src></tt>, |
| <tt><classpath></tt>, |
| <tt><bootclasspath></tt>, |
| <tt><extdirs></tt>, and |
| <tt><jvmargs></tt> elements, respectively. |
| </p></div><div class="sect2"><a name="antTasks-ajc-sample"></a><div class="titlepage"><div><h3 class="title"><a name="antTasks-ajc-sample"></a>Sample of ajc task</h3></div></div><p> |
| Following is a declaration for the ajc task and a sample invocation |
| that uses the ajc compiler to compile the files listed in |
| <tt>default.lst</tt> into the dest dir: |
| </p><pre class="programlisting"> |
| |
| <project name="example" default="compile" > |
| <taskdef name="ajc" |
| classname="org.aspectj.tools.ant.taskdefs.Ajc10" > |
| <!-- declare classes needed to run the tasks and tools --> |
| <classpath> |
| <pathelement location="${home.dir}/tools/aspectj/lib/aspectjtools.jar"/> |
| </classpath> |
| </taskdef> |
| |
| <target name="compile" > |
| <mkdir dir="dest" /> |
| <ajc destdir="dest" argfiles="default.lst" > |
| <!-- declare classes needed to compile the target files --> |
| <classpath> |
| <pathelement location="${home.dir}/tools/aspectj/lib/aspectjrt.jar"/> |
| </classpath> |
| </ajc> |
| </target> |
| </project> |
| |
| </pre><p> |
| This build script snippet |
| </p><pre class="programlisting"> |
| |
| <ajc srcdir="${src}" |
| destdir="${build}" |
| argfiles="demo.lst" |
| /> |
| |
| </pre><p> |
| compiles all .java files specified in the demo.lst and stores the .class files in the ${build} directory. Unlike the Javac task, the includes attribute is empty by default, so only those files specified in demo.lst are included. |
| </p><p> |
| This next example |
| </p><pre class="programlisting"> |
| |
| <ajc srcdir="${src}" |
| destdir="${build}" |
| includes="spacewar/*,coordination/*" |
| excludes="spacewar/Debug.java" |
| /> |
| |
| </pre><p> |
| compiles .java files under the <tt>${src}</tt> directory in the |
| spacewar and coordination packages, and stores the .class files in the |
| <tt>${build}</tt> directory. |
| All source files under spacewar/ and coordination/ are used, except Debug.java. |
| </p><p> |
| See <a href="../examples/build.xml" target="_top">../examples/build.xml</a> |
| for an example build script. |
| </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="antTasks-adapter.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="antTasks-problems.html">Next</a></td></tr><tr><td width="40%" align="left">Ajc11CompilerAdapter (javac) </td><td width="20%" align="center"><a accesskey="u" href="antTasks.html">Up</a></td><td width="40%" align="right"> Isolating problems running the Ant tasks</td></tr></table></div></body></html> |