问题
Can anyone point me at a good tutorial for making & using a local repository with Ivy? (Please don\'t point me at the Ivy docs, the tutorials are rather confusing)
I need to make a local repository to include .jar files that aren\'t necessarily available through the public maven repositories.
回答1:
Creating a local ivy repository is straight forward, maven is not required. Here's an example of publishing some text files using ivy as a standalone program.
I have 3 files I want to publish:
src/English.txt
src/Spanish.txt
src/Irish.txt
The ivy file src/ivy.xml details the name of the module and a list of the artifacts being published. (Release index)
<ivy-module version="2.0">
<info organisation="myorg" module="hello"/>
<publications>
<artifact name="English" ext="txt" type="doc"/>
<artifact name="Irish" ext="txt" type="doc"/>
<artifact name="Spanish" ext="txt" type="doc"/>
</publications>
</ivy-module>
You'll also need an ivy settings file to tell ivy where the repository is located
<ivysettings>
<property name="repo.dir" value=".../repo"/>
<settings defaultResolver="internal"/>
<resolvers>
<filesystem name="internal">
<ivy pattern="${repo.dir}/[module]/ivy-[revision].xml" />
<artifact pattern="${repo.dir}/[module]/[artifact]-[revision].[ext]" />
</filesystem>
</resolvers>
</ivysettings>
Finally run ivy to publish the released version 1.0:
java -jar $IVY -settings config/ivysettings.xml \
-ivy src/ivy.xml \
-publish internal \
-publishpattern "src/[artifact].[ext]" \
-revision 1.0 \
-status release \
-overwrite
Note the publish pattern. It tells ivy where the files to be published are located.
Added: Publishing from within ANT
<target name="publish" depends="clean,package" description="Publish this build into repository">
<ivy:publish pubrevision="${pub.version}" status="${pub.status}" resolver="${pub.resolver}" >
<artifacts pattern="${build.dir}/dist/[artifact].[ext]"/>
</ivy:publish>
</target>
回答2:
don't know if you're using SVN, if this is the case this may help:
http://code.google.com/p/ivysvn/
回答3:
What you may want to look at doing is creating a private maven repository, either on your local machine, or in your intranet. Then deploy these non-public resources to that repository using maven. Ivy integrates with maven repositories, so you will be able to then pull these resources in during compile time.
来源:https://stackoverflow.com/questions/1200762/good-ivy-tutorial-for-local-repository