You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Konstantin Rekk <ko...@gbv.de> on 2008/12/18 15:43:06 UTC

question: publish and deliver - how to force status in dependency

Hello,

I am a little confused about the generation of ivy files during (ant)
publish task (playing around with example
apache-ivy-2.0.0-rc2/src/example/multi-project/ ):

Citation from: 
http://ant.apache.org/ivy/history/latest-milestone/use/deliver.html

"If a deliver target is set, then it is called (via an antcall) for each
dependency which has not a suffisant status compared to the deliver
status set for this task. This means that if you deliver an integration
revision, no recursive delivery will be done."

Is my expectation right, that in case of using status release for
publishing as in common.xml:
    <!-- ================================= 
          target: publish              
         ================================= -->
    <target name="publish" depends="clean-build, jar" description="-->
publish this project in the ivy repository">
    	<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]" 
    			           resolver="shared"
    			           pubrevision="${version}" 
    			           status="release"
    	/>
        <echo message="project ${ant.project.name} released with version
${version}" />
    </target>

would force inclusion of dependencies with status release as well?

But look at the generated
multi-project/repository/shared/org.apache.ivy.example/console/1.0-dev-b5/ivys/ivy.xml :

<ivy-module version="1.0">
    <info organisation="org.apache.ivy.example" module="console"
revision="1.0-dev-b5" status="release" publication="20081217191943"/>
    <dependencies>
      <dependency name="version" rev="1.0-dev-b3"
revConstraint="latest.integration" conf="default"/>
      <dependency name="list" rev="1.0-dev-b3"
revConstraint="latest.integration" conf="default->standalone"/>
      <dependency name="find" rev="1.0-local-20081217183846"
revConstraint="latest.integration" conf="default->standalone"/>
      <dependency name="sizewhere" rev="1.0-dev-b3"
revConstraint="latest.integration" conf="default->standalone"/>
    </dependencies>
</ivy-module>

Please, could somebody here give me a hint, what's the best way to force
generated dependencies:
- status release -> include only release (publish on public)
- status milestone -> include only milestone and above (publish shared)
- status integration -> latest.integration and above (publish local)

Does this approach makes sense at all?

Thanks a lot!

Konstantin