Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 在常春藤中,无法发布工件FileNotFoundException错误意味着什么?_Ant_Ivy - Fatal编程技术网

Ant 在常春藤中,无法发布工件FileNotFoundException错误意味着什么?

Ant 在常春藤中,无法发布工件FileNotFoundException错误意味着什么?,ant,ivy,Ant,Ivy,我在一个使用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.

我在一个使用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)

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

蚂蚁目标

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

常春藤文件片段

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


谢谢。

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

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

实际上,我为每个构建生成了两个pom
。一个是
pom.xml
,另一个是
pom snapshot.xml`。我们在每个构建中都部署快照,因此其他开发人员可以使用最新的jar,而不是正式部署的jar。如果你感兴趣的话,我已经把整件事都放进去了

我见过的唯一一份像样的Ant/Ivy文档是Steve Loughram写的Manning's。如果不是那样的话,我可能从来没有试过用常春藤做蚂蚁。Apache的在线Ant/Ivy文档非常糟糕

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


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

感谢所有建议。结果是一个我没有寻找的简单解决方案

问题是/path_到/ivy repository/com.company.project1的权限。我没有书面许可。.part文件是由Ivy编写的临时文件。Ivy无法写入临时文件,因此当它开始读取该文件时,无法找到它

我回答这个问题是为了以后能帮助别人


谢谢。

您能提供build.xml的(至少一个示例)吗?那个目录存在吗?我在问题中添加了ant目标。此外,目录存在到“5.1.3.part”为止。我不知道;我不知道这是从哪里来的。谢谢。您是否在ivy.xml文件中包含了“出版物”部分?请参阅:我添加了ivy.xml中的部分