Hi,
Thanks for your helps.
I added changing="true", but it still keep the old jar file.
The following is my configuration:
ivy.xml of Project B:
-------------------------------------------------------------------
<dependency org="test" name="a" rev="1.0.0-SNAPSHOT" changing="true"/>
-------------------------------------------------------------------
build.xml of project B:
-------------------------------------------------------------------
<target name="resolve" description="retreive dependencies with ivy">
<ivy:retrieve/>
</target>
-------------------------------------------------------------------
build.xml of project A:
--------------------------------
<target name="publish-shared" depends="jar" description="--> publish this
project in shared ivy repository">
<delete file="${build.dir}/ivy.xml" />
<ivy:publish resolver="shared" overwrite="true"
artifactspattern="${build.dir}/[artifact]-[revision].[ext]"
pubrevision="${project.version}" status="release" />
</target>
--------------------------------
The ivysettings.xml used by project A and B:
---------------------------------------------
<ivysettings>
<settings defaultResolver="default-resolver" />
<property name="ivy.local.default.root"
value="${ivy.default.ivy.user.dir}/local" />
<property name="ivy.local.default.ivy.pattern"
value="[organisation]/[module]/[revision]/ivys/ivy-[revision].xml" />
<property name="ivy.local.default.artifact.pattern"
value="[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]"
/>
<property name="ivy.shared.default.root"
value="/home/test/ivy-repository/repository/no-namespace" />
<property name="ivy.shared.default.ivy.pattern"
value="[organisation]/[module]/[revision]/ivys/ivy-[revision].xml" />
<property name="ivy.shared.default.artifact.pattern"
value="[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]"
/>
<resolvers>
<filesystem name="local">
<ivy
pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern} "/>
<artifact
pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern} "/>
</filesystem>
<filesystem name="shared">
<ivy
pattern="${ivy.shared.default.root}/${ivy.shared.default.ivy.pattern}"/>
<artifact
pattern="${ivy.shared.default.root}/${ivy.shared.default.artifact.pattern}"/>
</filesystem>
<chain name="default-resolver">
<resolver ref="local" />
<resolver ref="shared" />
</chain>
</resolvers>
</ivysettings>
---------------------------------------------
Thanks a lot.
==============================================================
--- On Fri, 8/6/10, Troy Self <[email protected]> wrote:
> From: Troy Self <[email protected]>
> Subject: RE: updated SNAPSHOT.jar
> To: [email protected]
> Received: Friday, August 6, 2010, 12:35 PM
> In B's ivy.xml file, you should note
> that A is changing as follows:
> <dependency
> name="A"
>
> rev="latest.integration"
>
> conf="compile->master;runtime->default"
>
> changing="true" />
>
> That tells Ivy that the dependency is likely to change even
> when the version
> is the same. It will take the extra step to compare file
> size/date instead
> of just checking the cache for the version.
>
> Hope this helps.
>
> -- tBs
>
> > -----Original Message-----
> > From: acec acec [mailto:[email protected]]
> > Sent: Friday, August 06, 2010 12:13 PM
> > To: [email protected]
> > Subject: updated SNAPSHOT.jar
> >
> > Hi, all
> > I have two projects: a and b
> >
> > a project will publish a-1.0.0-SNAPSHOT.jar into
> shared repository.
> >
> > b project depends on a-1.0.0-SNAPSHOT.jar.
> >
> > If I did some changes on a, I published a again, I
> checked share
> > repository, which includes the right jar file.
> >
> > But in b project, when b retrieves dependent jar
> files, for some
> > reason, it still keep the old a-1.0.0-SNAPSHOT.jar.
> >
> > it seems the ~/.ivy2/cache also keeps the old jar
> file. How do I get
> > the updated jar file?
> >
> >
> > Thanks.
>
>
>