ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Rene David <jrdavid...@magma.ca>
Subject <javac> rebuilds even if source not changed
Date Sun, 27 Apr 2008 13:33:12 GMT
Hello,

When a class is in a package, the <javac> target
always rebuilds it even if the source hasn't
changed. Here's a test case:

$ ant -version
Apache Ant version 1.7.0 compiled on December 13 2006

$ ls
build.xml
Welcome.java

$ cat Welcome.java
package My.Class;
public class Welcome
{
   public static void main(String[] args)
   {
      System.out.println("Hello World!");
   }
}

$ cat build.xml
<?xml version="1.0"?>
<project name="test" default="build" basedir=".">
   <target name="build">
      <mkdir dir="foo" />
      <javac srcdir="." destdir="foo" />
   </target>
</project>

$ ant
Buildfile: build.xml

build:
    [mkdir] Created dir: /tmp/testcase/foo
    [javac] Compiling 1 source file to /tmp/testcase/foo

BUILD SUCCESSFUL
Total time: 1 second

Now I just run it again:

$ ant
Buildfile: build.xml

build:
    [javac] Compiling 1 source file to /tmp/testcase/foo

BUILD SUCCESSFUL
Total time: 0 seconds

And it recompiles but the source file hasn't
changed.

My class is part of the My.Class package, so javac
put it in: foo/My/Class:

$ find 
.
./Welcome.java
./build.xml
./foo
./foo/My
./foo/My/Class
./foo/My/Class/Welcome.class

But the <javac> task doesn't recurse the hierarchy
to find the class file. It only looks in the
"destdir" itself. So if I just:

$ touch foo/Welcome.class

Then <javac> doesn't rebuild the file:

$ ant
Buildfile: build.xml

build:

BUILD SUCCESSFUL
Total time: 0 seconds

What idiom am I missing?

Thanks for any input,

-- 
JR

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message