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:
我得到它(有点),但它仍然感觉不对.不知何故,所有教程都关注第三方项目的依赖关系,但对我来说同样重要的一点是处理项目特定的依赖关系.
我有一堆子项目,它们以各种方式相互依赖.考虑常春藤:发布我不清楚如何开始.
我该如何处理第一个版本?我有一个共同的版本号用于所有子项目,以表明它们属于一起(假设为0.9).因此第一次修订应该是0.9.0,但到目前为止,我的项目中没有任何内容存在于我的存储库中.如何让Ivy分配此修订号.
在开发过程中,我想再次发布构建的文件,而不更改目前的版本号.
如果我完成了我的工作,我想将其推送到共享存储库(并将修订版号从0.9.0增加到0.9.1),建议的方法是什么?
对于实际的版本,我想制作具有依赖关系的发行版,但不知道,我想我可以使用不同的配置.我怎样才能利用这一优势?
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)