Hello all,
Currently I and AFAIK other rely on copy paste for reusing tasks.
Antlib make reusing tasks and macros easier. However I don't see wide
reuse for this. Now that ivy is become more popular, would it possible
to create a project of ant for maintaining a repo of reusable tasks ?
For example, I have this in many build files. A macro to build a jar
file from directory structure following maven directory structure:
<macrodef name="compile-macro">
<attribute name="source" default="src/main"/>
<attribute name="target" default="target/${ant.project.name}"/>
<element name="compile-path" />
<sequential>
<mkdir dir="@{target}"/>
<javac destdir="@{target}" includeantruntime="false"
source="1.7" debug="yes">
<src path="@{source}/java"/>
<classpath>
<compile-path />
</classpath>
</javac>
<copy todir="@{target}" failonerror="no">
<fileset dir="@{source}/resources"/>
</copy>
</sequential>
</macrodef>
One way to avoid this, is to wrap it in an antlib, and install it in
my ~/.ant/lib. However, other can not build this project unless then
have the antlib.jar.
A possible solution would be to put it in a maven repo, and configure
ivy to download it to the current project. Tasks using this macro will
be called with "-lib path_to_jars_option".
I am not sure if there's a better way.
Wouldn't it be good idea, to create a project under ant project
umbrella beside ant libraries, that will maintain a repo of tasks
approved by the community and proven to be useful ?
Knowing that we do this by searching the net and previous project to
copy/paste snippet, this will make it easier for us to reuse code in a
cleaner way, and will never take away any of the flexibility of ant.
What do others think ?
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]