ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dominique Devienne <DDevie...@lgc.com>
Subject RE: javac-task and mapper
Date Mon, 18 Aug 2003 23:16:50 GMT
All you need to do is:

<javac destdir="build">
  <src path="src/team1" />
  <src path="src/team2" />
</javac>

No need for a mapper. Works like a charm ;-) --DD

> -----Original Message-----
> From: Ulf Caspers [mailto:Ulf@caspers.de]
> Sent: Monday, August 18, 2003 4:35 PM
> To: dev@ant.apache.org
> Subject: Re: javac-task and mapper
> 
> 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