45

任何人都可以指出一个很好的教程来制作和使用 Ivy 的本地存储库吗?(请不要将我指向 Ivy 文档,教程相当混乱)

我需要创建一个本地存储库以包含不一定通过公共 maven 存储库可用的 .jar 文件。

4

3 回答 3

45

创建本地 ivy 存储库很简单,不需要 maven。这是一个使用 ivy 作为独立程序发布一些文本文件的示例。

我有 3 个文件要发布:

src/English.txt
src/Spanish.txt
src/Irish.txt

ivy 文件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 设置文件来告诉 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 要发布的文件的位置。

补充:从 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>
于 2010-02-17T09:46:20.757 回答
2

不知道您是否使用的是 SVN,如果是这种情况,这可能会有所帮助:

http://code.google.com/p/ivysvn/

于 2009-07-29T14:46:35.753 回答
0

您可能希望在本地计算机或 Intranet 上创建一个私有 maven 存储库。然后使用 maven 将这些非公共资源部署到该存储库。Ivy 与 maven 存储库集成,因此您将能够在编译期间提取这些资源。

于 2009-11-04T14:48:43.360 回答