常春藤怎么样:发表作品?

Mau*_*uli 25 java ant build-automation build-process ivy

我完全不知道蚂蚁任务常春藤:发布应该如何工作.

我希望我做我的正常构建,它会创建一堆jar文件,然后我会将这些jar推送到(本地)存储库.

如何指定从哪里检索构建的jar,以及它们将如何最终存储在存储库中?

更新:

<target name="publish-local" description="--> Publish Local">
    <ivy:retrieve />
    <ivy:publish resolver="local" pubrevision="${release.version}" status="release" update="true" overwrite="true">
        <artifacts pattern="${dist.dir}/[organisation]-[module].[ext]" />
    </ivy:publish>
</target>
Run Code Online (Sandbox Code Playgroud)

这实际上有效,我之前没有包含检索.

但是我仍然有一些问题,假设我想发布3个罐子,openscada-utils.jar,openscada-utils-sources.jar和openscada-utils-javadocs.jar作为openscada-utils-0.9.2.jar,openscada-utils -0.9.2-sources.jar和openscada-utils-0.9.2-javadocs.jar

我不完全清楚,实际名称是如何组合的,以及我可以指定它们应该得到的名称.(使用上面的片段,jar总是只调用utils.jar).

更新1:

我得到它(有点),但它仍然感觉不对.不知何故,所有教程都关注第三方项目的依赖关系,但对我来说同样重要的一点是处理项目特定的依赖关系.

我有一堆子项目,它们以各种方式相互依赖.考虑常春藤:发布我不清楚如何开始.

  1. 我该如何处理第一个版本?我有一个共同的版本号用于所有子项目,以表明它们属于一起(假设为0.9).因此第一次修订应该是0.9.0,但到目前为止,我的项目中没有任何内容存在于我的存储库中.如何让Ivy分配此修订号.

  2. 在开发过程中,我想再次发布构建的文件,而不更改目前的版本号.

  3. 如果我完成了我的工作,我想将其推送到共享存储库(并将修订版号从0.9.0增加到0.9.1),建议的方法是什么?

  4. 对于实际的版本,我想制作具有依赖关系的发行版,但不知道,我想我可以使用不同的配置.我怎样才能利用这一优势?

sbl*_*ndy 10

您需要指定"解析器".就像是:

<ivy:publish resolver="local" pubrevision="1.0"/>
Run Code Online (Sandbox Code Playgroud)

它受模式控制.这个页面很好地涵盖了它.看起来你想要你的:

<artifacts pattern="${dist.dir}/[organisation]-[module]-[revision]-[type].[ext]" />
Run Code Online (Sandbox Code Playgroud)

您需要在ivy.xml文件中将三个jar标识为工件.像这样的东西:

<publications>
    <artifact name="utils"/>
    <artifact name="utils" type="source"/>
    <artifact name="utils" type="javadocs"/>
</publications>
Run Code Online (Sandbox Code Playgroud)