Nulik
Nulik

Reputation: 7380

deleting object tree with ant using java language

When I do "make clean" it deletes all the object files , in C distributions.

What would be the command "make clean" when using ant, in Java distributions?

Upvotes: 0

Views: 21

Answers (1)

Mark O'Connor
Mark O'Connor

Reputation: 77991

Java based build tools generaly build everything in target directory. ANT builds typically have a "clean" target that works as follows:

<target name="clean" description="Cleanup build files">
    <delete dir="${build.dir}"/>
</target>

My advice is not to fight this one :-) It might look dumb but it's how more advanced tools like Maven work by default.

Example

I would typically declare some standard properties at the top of my build file:

<property name="src.dir"        location="src/main/java"/>
<property name="build.dir"      location="build"/>

<property name="dist.dir"       location="${build.dir}/dist"/>
<property name="jar.main.class" value="org.demo.App"/>
<property name="jar.file"       value="${dist.dir}/${ant.project.name}.jar"/>

Which are used to build my jar as follows:

<target name="compile" description="Compile code">
    <mkdir dir="${build.dir}/classes"/>
    <javac srcdir="${src.dir}" destdir="${build.dir}/classes" includeantruntime="false" debug="true" classpathref="compile.path"/>
</target>

<target name="build" depends="compile" description="Create executable jar archive">
    <jar destfile="${jar.file}" basedir="${build.dir}/classes">
        <manifest>
            <attribute name="Main-Class" value="${jar.main.class}" />
        </manifest>
    </jar>
</target>

If you look carefully you'll notice everything ANT does is created under the "build" subdirectory.

Upvotes: 1

Related Questions