1

我已经为此发疯了好几个小时,但我找不到任何有关如何为已发布 jar 指定模式的资源(这些已发布到我的本地存储库。

我在另一个 ant 任务创建的构建目录中有一个名为peacock-lib-1.0.jar的文件。运行发布蚂蚁任务时,常春藤找到该文件并将其复制到我希望找到它的本地目录中。但是,目标文件最终被重命名为peacock-lib.jar

显然只是缺少一些配置,但我就是不知道是什么。

这是我的 ivy.xml:

<ivy-module version="2.0">
  <info organisation="myorg" module="peacock-lib" />

  <publications>
    <artifact name="peacock-lib" type="jar"/>
  </publications>

  <dependencies>
...
  </dependencies>

</ivy-module>

和我的蚂蚁任务:

  <target name="publish-local" description="--> Publish Local">
    <property name="ivy.organisation" value="myorg" />
    <property name="ivy.module" value="peacock-lib" />
    <property name="ivy.revision" value="${peacockLibVer}" />
    <ivy:publish resolver="local" pubrevision="${peacockLibVer}" status="release" update="true" overwrite="true">
      <artifacts pattern="dist/lib/[module]-[revision].[ext]" />
    </ivy:publish>
  </target>

任何帮助将不胜感激。

问候

蕨类

4

1 回答 1

2

感谢上面的 Ian 为我提供了关于附加配置是什么的指针。

为了解决这个问题,我查看了 jar 中的 ivysettings.xml。在 ivysettings-local.xml 中,我看到了导致我想要覆盖的命名法的原因,因此我生成了自己的 ivysettings.xml,仅影响这些值(请注意,我没有替换原始的 ivysettings.xml):

<ivysettings>
  <include url="${ivy.default.settings.dir}/ivysettings.xml"/>
  <property name="ivy.local.default.ivy.pattern"      value="[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]" override="true"/>
  <property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]" override="true"/>
  <resolvers>
    <filesystem name="local">
      <ivy pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern}" />
      <artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />
    </filesystem>
  </resolvers>
</ivysettings>
于 2013-11-13T10:18:56.850 回答