You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by KB Sriram <kb...@skytalk.com> on 1999/11/28 19:02:06 UTC

javac task in ant: rework?

I'm wondering if we need an improved strategy to properly handle what the
javac task does to determine the list of files to recompile (i.e., instead
of using timestamp based out-of-date files.)

For example, in a "test" subdirectory I have two files, A.java and B.java

public class A implements B { public void m() {} }

public interface B { public void m(); }

For a build.xml that has this task:
<javac srcdir="test" destdir="build" classpath="lib/projectx-tr2.jar"
     debug="on" deprecation="on"/>

The first time I run ant, everything is ok.
----
build -buildfile test.xml -verbose
Buildfile: test.xml
Detected Java Version: 1.2
Project base dir set to: E:\Users\kbs\jakarta\jakarta-tools\ant
Setting project property: build.compiler to classic
 +Target: main
   +Task: mkdir
   +Task: javac
Executing Target: main
Compiling 2 source files to E:\Users\kbs\jakarta\jakarta-tools\ant\build
Using classic compiler
Compilation args: [-deprecation, -d,
E:\Users\kbs\jakarta\jakarta-tools\ant\build, -classpath,
E:\Users\kbs\jakarta\jakarta-tools\ant\build;E:\Users\kbs\jakarta\jakarta-to
ols\ant\lib\projectx-tr2.jar;..\ant.jar;..\projectx-tr2.jar;, -sourcepath,
E:\Users\kbs\jakarta\jakarta-tools\ant\test, -g]
Files to be compiled:
    E:\Users\kbs\jakarta\jakarta-tools\ant\test\A.java
    E:\Users\kbs\jakarta\jakarta-tools\ant\test\B.java

Completed in 1 seconds
----
If I change B.java to
public interface B { public void m2(); }

ant incorrectly creates a successful build, because it didn't select A for
recompilation.
----
build -buildfile test.xml -verbose
Buildfile: test.xml
Detected Java Version: 1.2
Project base dir set to: E:\Users\kbs\jakarta\jakarta-tools\ant
Setting project property: build.compiler to classic
 +Target: main
   +Task: mkdir
   +Task: javac
Executing Target: main
Compiling 1 source files to E:\Users\kbs\jakarta\jakarta-tools\ant\build
Using classic compiler
Compilation args: [-deprecation, -d,
E:\Users\kbs\jakarta\jakarta-tools\ant\build, -classpath,
E:\Users\kbs\jakarta\jakarta-tools\ant\build;E:\Users\kbs\jakarta\jakarta-to
ols\ant\lib\projectx-tr2.jar;..\ant.jar;..\projectx-tr2.jar;, -sourcepath,
E:\Users\kbs\jakarta\jakarta-tools\ant\test, -g]
Files to be compiled:
    E:\Users\kbs\jakarta\jakarta-tools\ant\test\B.java

Completed in 1 seconds
----

-kb-