我正在使用 ivy 管理一堆相互依赖的 deb 文件。我正在为每个 deb 生成常春藤文件并在需要的地方添加依赖项。我正在尝试发布,但它要求我首先执行解决步骤。
我无法解决,因为没有任何模块在常春藤回购中。这些是运行时依赖项,我使用它们能够从 ivy repo 中提取 deb 文件的配置。
我尝试了 ivy src 附带的示例“多项目”,发现如果您尝试发布“大小”项目,它也会以同样的方式失败;我ant clean-all
之前做了一个模拟没有工件/元数据作为回购。我注意到它正在使用<ivy:buildlist />
(http://ant.apache.org/ivy/history/latest-milestone/use/buildlist.html)
这似乎不起作用。我使用生成的列表按顺序执行发布并得到相同的问题。
为什么我的构建列表会返回与其中相同的文件集?
<target name="publish-shared" depends="" description="--> Publish project's artifacts to SHARED repository">
<ivy:buildlist reference="ivy.dep.files">
<fileset dir="${ivy.build.dir}" includes="**/ivy.xml"/>
</ivy:buildlist>
<for param="ivy.dep.file" list="${toString:ivy.dep.files}" delimiter=":">
<sequential>
<antcall target="publish-shared-onemod" inheritAll="true" inheritRefs="true">
<param name="ivy.dep.file" value="@{ivy.dep.file}" />
</antcall>
</sequential>
</for>
</target>
<target name="publish-shared-onemod">
<ivy:resolve />
<ivy:publish resolver="shared" artifactspattern="${target.dir}/[artifact].[ext]" status="integration" />
</target>
更新:
我不得不反转构建列表<ivy:buildlist reference="ivy.dep.files" reverse="true">
但是非常奇怪的是,当我指定一个根模块(例如:)时<ivy:buildlist reference="ivy.dep.files" root="${ivy.module.root}">
,它不需要反转。我一定是做错了什么,但在我遇到错误之前,我会使用反向。