【问题标题】:In Ivy what does impossible to publish artifacts FileNotFoundException Error Mean?在 Ivy 中不可能发布工件 FileNotFoundException 错误是什么意思?
【发布时间】:2013-09-03 11:29:19
【问题描述】:

我正在使用 Ant/Ivy 的大型构建系统中工作。我尝试使用使用 ivy:publish ant 任务的预定义 ant 任务并收到此错误:

无法发布 com.company.project1.proj1#MySupportJar;working@server1: java.io.FileNotFoundException: /path_to/ivy-repository/com.company.project1.proj1/MySupportJar/5.1.3.part 的工件/MySupportJar-5.1.3.jar (没有这样的文件或目录)

错误信息中的目录存在于版本号部分(5.1.3.part)之前。

我是 Ivy 的新手,但我想我了解它的工作原理。我无法找到有关此错误的确切含义的太多信息,因此如果有人可以帮助或指出我的解释,我认为我可以从那里解决问题。

蚂蚁目标

<target name="publish-shared" depends="ivyInit, resolve"
        description="Publish to the shared repository">
    <ivy:publish pubrevision="5.1.3"
                 resolver="shared"
                 pubdate="${timestamp}"
                 forcedeliver="true"
                 update="true"
                 conf="distro, docs">
        <artifacts pattern="dist/[artifact].[ext]"/>
    </ivy:publish>
</target>

常春藤文件sn-p

<publications>
    <artifact name="MySupportJar" type="jar" conf="distro" />
    <artifact name="MySupportJar-source" type="source" ext="jar" conf="docs" />
</publications>

谢谢。

【问题讨论】:

  • 你能提供(至少一个样本)你的 build.xml 吗?那个目录存在吗?
  • 我将蚂蚁目标添加到问题中。此外,该目录存在到“5.1.3.part”为止。我不知道那是从哪里来的。谢谢。
  • 您是否在 ivy.xml 文件中包含了“出版物”部分?见:stackoverflow.com/questions/8304562/…
  • 我从 ivy.xml 添加了 部分

标签: ant ivy


【解决方案1】:

感谢所有建议。结果证明这是一个我不想要的简单解决方案。

问题在于 /path_to/ivy-repository/com.company.project1 的权限。我没有写权限。 .part 文件是 Ivy 编写的临时文件。 Ivy 无法写入临时文件,因此在读取文件时找不到它。

我正在回答这个问题,以便以后可能对某人有所帮助。

谢谢。

【讨论】:

    【解决方案2】:

    我对 Ant 和 Ivy 也很陌生。我所做的是将本地 Maven 存储库(Artifactory)与 Jenkins 作为持续集成服务器相结合。当我们构建一个 jar 时,我还用它生成了 Maven pom.xml。然后,我使用mvn deploy:file 命令将所需的构建部署到我们的 Maven 存储库。

    开发人员通过 Promoted Build 插件手动将 jar 部署到我们的 Maven 存储库到 Jenkins。开发人员选择要部署到 Maven 的构建,然后几乎按下一个按钮,该构建就会被部署。

    我实际上产生了两个 pomwith each build. One ispom.xmland the other ispom-snapshot.xml`。我们在每次构建时部署快照,因此其他开发人员可以使用最新的 jar,而不是官方部署的 jar。如果您有兴趣,我已将整个内容放在github 中。

    我见过的唯一不错的 Ant/Ivy 文档是 Manning 的 Ant in Action,作者是 Steve Loughram。如果不是这样,我可能永远都不会尝试用 Ivy 来使用 Ant。 Apache 的在线 Ant/Ivy 文档简直太糟糕了。

    我已经查看了您拥有的东西。我怀疑这可能是您的 ivy-settings.xml 文件的问题。在某处,它将part 字符串作为发布文件的有效位置。否则,我不知道。

    正如我所说,我们为 site 存储库使用 Maven 存储库,然后使用 Maven 将 jar 实际部署到存储库。我只是发现这样做比弄清楚如何在纯常春藤中做到这一点要容易得多。此外,这也意味着我们的 Maven 项目也可以使用我们 Ant/Ivy 项目中的 jar。

    【讨论】:

      猜你喜欢
      • 2011-03-03
      • 1970-01-01
      • 2016-11-28
      • 2013-10-04
      • 2012-10-01
      • 2013-04-10
      • 2019-12-06
      • 2015-03-04
      • 2012-11-26
      相关资源
      最近更新 更多