在Ivy做什么不可能发布工件FileNotFoundException错误平均值



我在一个使用Ant/Ivy的大型构建系统中工作。我尝试使用一个预定义的蚂蚁任务,该任务使用ivy:publish-ant任务,并得到以下错误:

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

错误消息中的目录一直存在到版本号部分(5.1.3.part)。

我是常春藤的新手,但我想我了解它的基本工作原理。我找不到这个错误的确切含义,所以如果有人能帮我或给我一个解释,我想我可以从那里解决这个问题。

蚂蚁目标

<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>

Ivy文件片段

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

谢谢。

感谢您的建议。事实证明,这是一个我并不想要的简单解决方案。

问题出在/path_to/ivy repository/company.project1上。我没有书面许可。.part文件是Ivy编写的临时文件。Ivy无法写入临时文件,所以当它读取文件时,却找不到它

我回答这个问题是为了以后对别人有所帮助。

谢谢。

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

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

我实际上生成了两个pom with each build. One is pom.xml and the other is pom snapshot.xml`。我们在每次构建时都部署快照,这样其他开发人员就可以使用最新的jar,而不是正式部署的jar。如果你感兴趣的话,我已经把整件事都放在github里了。

我看到的唯一像样的蚂蚁/常春藤文档是Steve Loughram的Manning的《蚂蚁在行动》。如果不是这样的话,我可能永远都不会和艾薇一起尝试蚂蚁。Apache的在线Ant/Ivy文档简直太糟糕了。

我看过你的东西。我怀疑您的ivy-settings.xml文件可能有问题。在某个地方,它正在获取part字符串作为发布文件的有效位置。否则,我不知道。

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

相关内容

  • 没有找到相关文章

最新更新