org.aspectj.tools.ant.taskdefs
Class Ajc11CompilerAdapter

java.lang.Object
  extended by org.aspectj.tools.ant.taskdefs.Ajc11CompilerAdapter

public class Ajc11CompilerAdapter
extends java.lang.Object

Adapt ajc to javac commands. Note that the srcdirs set for javac are NOT passed on to ajc; instead, the list of source files generated is passed to ajc.

Javac usually prunes the source file list based on the timestamps of corresponding .class files, which is wrong for ajc which requires all the files every time. To work around this, set the global property CLEAN ("build.compiler.clean") to delete all .class files in the destination directory before compiling.

Warnings:

  1. cleaning will not work if no destination directory is specified in the javac task. (RFE: find and kill .class files in source dirs?)
  2. cleaning will makes stepwise build processes fail if they depend on the results of the prior compilation being in the same directory, since this deletes all .class files.
  3. If no files are out of date, then the adapter is never called and thus cannot gain control to clean out the destination dir.
  4. Since:
    AspectJ 1.1, Ant 1.5.1

    Field Summary
    static java.lang.String CLEAN
              Define this system/project property to signal that the destination directory should be cleaned and javac reinvoked to get the complete list of files every time.
     
    Constructor Summary
    Ajc11CompilerAdapter()
               
     
    Method Summary
     boolean execute()
               
     void setJavac(Javac javac)
               
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    Field Detail

    CLEAN

    public static final java.lang.String CLEAN
    Define this system/project property to signal that the destination directory should be cleaned and javac reinvoked to get the complete list of files every time.

    See Also:
    Constant Field Values
    Constructor Detail

    Ajc11CompilerAdapter

    public Ajc11CompilerAdapter()
    Method Detail

    setJavac

    public void setJavac(Javac javac)

    execute

    public boolean execute()
                    throws BuildException
    Throws:
    BuildException