Another option would be going back to running javac twice but with the includes in the appropriate place:

<javac srcdir="${src.common}" destdir="${bin}" includeAntRuntime="no"
             classpathref="lib.path" debug="${compile.debug}">
        <include name="AuthWindow.java"/>
        <include name="Capacity.java"/>
        <include name="CapacityPrinter.java"/>
        <include name="DateFormatField.java"/>
</javac>
<javac srcdir="${src}" destdir="${bin}"  includeAntRuntime="no"
             classpathref="lib.path" debug="${compile.debug}">
</javac>

This way it compiles only what I need from the Common folder and everything from the project's src folder.
Is there a disadvantage to doing it this way?

Thanks.

On Oct 28, 2009, at 10:23 AM, Dianne Yumul wrote:

Thank you Steve for the suggestions. I tried option 2 with the following:

<property name="src" location="src"/>
<property name="src.common" location="../../Common">

<javac destdir="${bin}" includeAntRuntime="no" classpathref="lib.path" debug="${compile.debug}">
        <src path="src"/>
        <src>
                <fileset file="${src.common}/AuthWindow.java"/>
        </src>
</javac>

But I get the error /Common/AuthWindow.java is not a directory.

Going back to the manual and some more searching.

Thanks.

On Oct 28, 2009, at 3:51 AM, Steve Loughran wrote:

Dianne Yumul wrote:
Hello Everyone,
I'm learning to use Ant 1.7.0 as part of Xcode 3.1.2 on Mac OS X 10.6. We have a separate directory called Common/ where we keep common java source files. These files need to get included, not all at the same time though, when compiling our Java applications. What would be the best way to do this? If I add Common/ to srcdir, it compiles everything inside when I only need a one or two. The FAQ mentions that "If you have Java source files that aren't declared to be part of any package, you can still use the <javac> task to compile these files correctly - just set the srcdir and destdir attributes to the actual directory the source files live in and the directory the class files should go into, respectively." But how to do this exactly? Do I need two separate javac tasks like the following? <javac srcdir="../../../Common/src" destdir="../../../Common/bin" classpathref="lib.path" debug="on"/> <javac srcdir="src" destdir="bin" classpathref="lib.path" debug="on"/>

that's not going to help, ant will still compile everything in common/

Two options

* <copy> only the files you need to somewhere (like build/src and include that in the compile


* use the nested <fileset file> elements in <src> inside javac

<property name="common.dir" location="../../../Common" />

<javac destdir="${build.classes.dir}">
<src>
<fileset file="${common.dir}/Utils.java" />
<fileset file="${common.dir}/Arrays.java" />
</src>


Know that Javac will pull in extra java source files if imported, it may compile more than you expect.

-steve


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



Reply via email to