任何人都可以指点我做一个好的教程来制作&在Ivy使用本地存储库? (请不要指向常春藤文档,教程相当混乱)
我需要创建一个本地存储库,以包含不一定通过公共maven存储库提供的.jar文件。
答案 0 :(得分:44)
创建本地常春藤存储库很简单,不需要maven。这是使用常春藤作为独立程序发布一些文本文件的示例。
我要发布3个文件:
src/English.txt
src/Spanish.txt
src/Irish.txt
常春藤文件 src / ivy.xml 详细说明了模块的名称以及正在发布的工件列表。 (发布索引)
<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>
您还需要一个常春藤设置文件来告诉ivy存储库所在的位置
<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>
最后运行ivy发布已发布的版本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
请注意发布模式。它告诉ivy要发布的文件位于何处。
<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>
答案 1 :(得分:2)
不知道你是否在使用SVN,如果是这种情况,这可能会有所帮助:
答案 2 :(得分:0)
您可能希望看到的是在本地计算机或Intranet中创建私有maven存储库。然后使用maven将这些非公共资源部署到该存储库。 Ivy与maven存储库集成,因此您可以在编译期间提取这些资源。