I have found a solution using the resolvers 'cache' attribute and multiple
caches.
So each module publishes to the temporary resolver.
At the top of a build which kicks off builds for all modules, the temporary
cache folder can be deleted.

   <settings defaultResolver="resolvers"/>
           
    <caches>
        <!-- permanent cache is for 3rd party libraries like Spring, Junit etc.
-->
        <cache name="permanent" basedir="${repository.dir.permanent}">
            <ttl duration="0d" />
        </cache>
        <!-- temporary cache is for modules. This cache can be wiped at the
beginning of every build -->
        <cache name="temporary" basedir="${repository.dir.temporary}">
            <ttl duration="0d" />
        </cache>        
    </caches>
     
    <resolvers>
        <chain name="resolvers" returnFirst="true">
                <!-- this resolver is a duplicate of the 'temporary' cache 
location
allowing us to publish directly to the temporary cache -->
                <filesystem name="temporary" cache="temporary">
                        <ivy
pattern="${repository.dir.temporary}/[organisation]/[module]/ivy-[revision].xml"
/>
                        <artifact
pattern="${repository.dir.temporary}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"
/>
                        </filesystem>
                                                
                        <!-- if module projects don't publish to the temporary 
cache because
they are not run as part of the build, then pre-built artifacts can be found
on cruisecontrol and put in the temporary cache here -->
                        <url name="cruisecontrol" cache="temporary">            
        
                                <artifact
pattern="http://thecake.orange.co.uk:8080/artifacts/[organisation]/[branch]/live/[artifact].[revision].[ext]";
/>
                        </url>
                        <-- remaining resolvers get 3rd party dependancies such 
as spring, junit
etc -->
                        <url name="com.springsource.repository.bundles.release"
cache="permanent">
                            <ivy
pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]";
/>
                            <artifact
pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]";
/>
                        </url>                  
                        <url name="com.springsource.repository.bundles.external"
cache="permanent">
                            <ivy
pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]";
/>
                            <artifact
pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]";
/>
                        </url>                          
                        <ibiblio name="ibiblio" m2compatible="true" 
cache="permanent" />                                                            
    
                </chain>                        
    </resolvers>


-- 
View this message in context: 
http://old.nabble.com/Publishing...-tp31221641p31228686.html
Sent from the ivy-user mailing list archive at Nabble.com.

Reply via email to