Build artifacts that are required by another project
ivy.xml: Attributes organisation, module and revision of element ivy-module/info.
1) Add a new resolver to ivy by adding following snippet to ivysettings.xml:
<filesystem name="gerald-local-ivy" m2compatible="false" force="false" local="true"> <artifact pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[type]s/[artifact]-[revision](-[classifier]).[ext]"/> </filesystem>This will create a directory
local
under <user.home>/.ivy2/
.
2) Add following snippet to your build.xml:
<target name="publish" depends="jar" description="Publish"> <!-- following property defines the version to publish -->
<property name="ivy.deliver.revision" value="${version}"/> <ivy:publish resolver="gerald-local-ivy" forcedeliver="true" settingsRef="${ant.project.name}.ivy.settings" overwrite="true"> <artifacts pattern="${build.dir}/[artifact]-[revision](-[classifier]).[ext]" /> </ivy:publish> </target>
The resolver
attribute of ivy:publish
must match name
attribute specified in step 1). Change pattern attribute for artifacts element to match where you put the artifact.
3) Use command ant publish
to publish your jar.
Build main project that depends on the artifacts built above.
1) Add the same resolver to ivy by adding following snippet to ivysettings.xml:
<filesystem name="gerald-local-ivy" m2compatible="false" force="false" local="true"> <artifact pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[type]s/[artifact]-[revision](-[classifier]).[ext]"/> </filesystem>
2) Add it to your effective resolver chain.
3) Add dependency declaration to ivy.xml
<dependency org="<organization>" name="<module>"
rev="<version>" conf="<common->master>">The attributes
org
, name
, rev
must match the values specified when you built the dependency jar.
4) Manually remove the artifacts that exist in local cache (<user.home>/.ivy2/cache).
5) Build your project
Resources
http://ant.apache.org/ivy/history/2.2.0/use/publish.html
http://ant.apache.org/ivy/history/latest-milestone/resolver/chain.html
http://stackoverflow.com/questions/353336/how-does-ivypublish-work
http://mail-archives.apache.org/mod_mbox/ant-ivy-user/201002.mbox/%3C27714488.post@talk.nabble.com%3E
No comments:
Post a Comment