Hello, I found a solution :

        <target name="pre_build">
                <ivy:cachepath pathid="ivy.allconfs" conf="*" />
                <pathconvert targetos="unix" property="classpath.converted" 
refid="ivy.allconfs" />
                <property file="${dist.dir}/.uptodate" />
                <condition property="build.notRequired">
                        <and>
                                <equals arg1="${classpath.persisted}" 
arg2="${classpath.converted}" />
                                <uptodate targetfile="${dist.dir}/.uptodate">
                                        <srcfiles dir="${src.dir}" 
includes="**/*" />
                                        <srcfiles dir="${test.dir}" 
includes="**/*" />
                                        <srcfiles dir="${config.dir}" 
includes="**/*" />
                                </uptodate>
                        </and>
                </condition>
                <condition property="_build.isBuildRequired" value="Build is 
NOT required" else="Build is required">
                        <isset property="build.notRequired" />
                </condition>
        </target>


at the end of my build process :


        <target name="post_build">
                <echo 
file="${dist.dir}/.uptodate">classpath.persisted=${classpath.converted}</echo>
                <touch file="${dist.dir}/.uptodate" />
        </target>



then i use the if/unless target attribute set to build.notRequired.


hope it would help someone else...


-----Original Message-----
From: Bourzeix, Hervé [mailto:[EMAIL PROTECTED]
Sent: Saturday, September 29, 2007 5:31 PM
To: [email protected]
Subject: uptodate and ivy 


Hello,

I am looking into making my build process a liitle bit smarter and avoid module 
build if not necessary. I use the uptodate task. My issue is how to handle 
dependency changes as I am not retrieving them, I am referencing dependency 
using cachepath. Is someone has a solution to build only if a dependency 
changed.

regards,

Hervé

Reply via email to