ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ulf Caspers <...@caspers.de>
Subject Re: javac-task and mapper
Date Mon, 18 Aug 2003 21:34:50 GMT
On Mon, 18 Aug 2003, Stefan Bodewig <bodewig@apache.org> wrote:

> <java> or <javac>?
<javac>!

> What would the mapper in <javac> be supposed to do?
There is a GlobPatternMapper in the javac-taskdef which is fixed to map
*.java-files to corresponding *.class-files. This is the reason why the
source directory structure and the destination directory structure must
match, which is usually no problem and what is expected by the
java-compiler as well.

Nevertheless there are situations in which this not the best case. I think
about a source layout, where different packages are in different
directories like this:

      src
      +--team1
      !  +--com
      !     +--example
      !        +--pack1
      !           +--Class1.java
      !           +--Class2.java
      +--team2
         +--com
            +--example
               +--pack2
                  +--ClassA.java
                  +--ClassB.java

But all packages should be compiled into a common directory like this:

      build
      +--com
         +--example
            +--pack1
            !  +--Class1.class
            !  +--Class2.class
            +--pack2
               +--ClassA.class
               +--ClassB.class

The following task would compile all sources:

 <javac srcdir="src"
        destdir="build">
 </javac>

But it would not be able to track unchanged *.java-files and does a
recompile each time ant is invoked.

Todays solution is either calling javac twice or copying all *.java-files
to a common directory before calling javac.

I guess it's faster and easier just to tell javac, how to find matching
sources and output like this:

 <javac srcdir="src"
        destdir="build">
   <mapper type="regexp" from="[^/]+/(.*)\.java" to="\1.class"/>
 </javac>

Of course <mapper type="glob" from"*.java" to="*.class"/> will be the
default.

Do you think this makes sense?

Ulf

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


Mime
View raw message