我希望先进行正常的构建,生成一堆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>
这真的有效,我之前没有包括retrieve。但我仍然有一些问题,假设我想发布3个jar文件,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:
我让它(有点)工作了,但仍然感觉不太对。某种程度上所有教程都关注来自第三方项目的依赖项,但对我同样重要的一点是处理项目特定的依赖项。
我有一堆相互依赖的子项目。考虑到ivy:publish,我不清楚如何开始。
我如何处理第一个版本?我有一个公共的版本号,用于表示它们彼此之间属于一起(假设为0.9)。因此第一个修订版应该是0.9.0,但迄今为止我的项目中没有任何内容在我的存储库中。如何让Ivy分配此修订号。
在开发过程中,我想再次发布构建文件,但迄今为止不更改修订号。
如果我完成工作后,我想将其推送到共享存储库(并将修订号从0.9.0增加到0.9.1),推荐的方法是什么?
对于实际发布,我想制作带有依赖项和不带依赖项的分发版,某种程度上我想我可以使用不同的配置来实现。如何利用这一点?