Hi,
Maybe try putting your javafile elsewhere :
* in a src/ dir (so that javac destdir is not a subdirectory of srcdir,
which probably confuses javac)
* by respecting the package / directory structure : it should be in
my/class/ package hierarchy
My 2 cts
Nico
Jean-Rene David <[EMAIL PROTECTED]> wrote on 27/04/2008 04:33:19:
> Hello,
>
> If 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>
> <target name="clean">
> <delete dir="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 shouldn't.
>
> 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
Ce message est à l'attention exclusive des destinataires désignés. Il peut
contenir des informations confidentielles. Si vous n'êtes pas destinataire
du message, merci d'en avertir immédiatement l'expéditeur et de détruire
ce message. Le contenu de ce message ne pourrait engager la responsabilité
de Steria que s'il a été émis par une personne dûment habilitée agissant
dans le strict cadre de ses fonctions et à des fins non étrangères à ses
attributions. Bien que les meilleurs efforts soient faits pour maintenir
cette transmission exempte de tout virus, l'expéditeur ne donne aucune
garantie à cet égard et sa responsabilité ne saurait être engagée pour
tout dommage résultant d'un virus transmis.
This message is intended exclusively for the designated addressee. It may
contain confidential material. If you are not the correct addressee,
please notify the sender immediately and destroy the message. The content
of this message will engage the responsibility of Steria only if it has
been sent by an authorized person acting in the strict scope of his
functions and for purposes that are related to his competence. Although
reasonable efforts have been made to keep this transmission free from
viruses, the sender will not be liable for damages caused by a transmitted
virus.