本地存储库的常春藤教程?

Jas*_*n S 46 ant ivy

任何人都可以指点我制作和使用常春藤本地存储库的好教程吗?(请不要指向常春藤文档,教程相当混乱)

我需要创建一个本地存储库来包含.jar文件,这些文件不一定可以通过公共maven存储库获得.

Mar*_*nor 44

创建本地常春藤存储库是直截了当的,不需要maven.这是使用常春藤作为独立程序发布一些文本文件的示例.

我有3个要发布的文件:

src/English.txt
src/Spanish.txt
src/Irish.txt
Run Code Online (Sandbox Code Playgroud)

常春藤文件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>
Run Code Online (Sandbox Code Playgroud)

您还需要一个常春藤设置文件来告诉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>
Run Code Online (Sandbox Code Playgroud)

最后运行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 
Run Code Online (Sandbox Code Playgroud)

请注意发布模式.它告诉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>
Run Code Online (Sandbox Code Playgroud)

  • 不要说这很容易,因为事实并非如此.如果这很容易,我会发现自己该怎么做. (9认同)