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 Ivy:检索在Nexus中发布的快照及其依赖项_Ant_Ivy_Nexus - Fatal编程技术网

Ant Ivy:检索在Nexus中发布的快照及其依赖项

Ant Ivy:检索在Nexus中发布的快照及其依赖项,ant,ivy,nexus,Ant,Ivy,Nexus,我正在使用Ivy将构建Jar的快照发布到本地托管的Nexus存储库中,使用以下Ant目标 <target name="publish"> <ivy:publish resolver="nexus_snapshot" pubrevision="SNAPSHOT" overwrite="true"> <artifacts pattern="${dist.dir}/[artifact].[ext]" /> </ivy:publi

我正在使用Ivy将构建Jar的快照发布到本地托管的Nexus存储库中,使用以下Ant目标

<target name="publish">
    <ivy:publish resolver="nexus_snapshot" pubrevision="SNAPSHOT" overwrite="true">
        <artifacts pattern="${dist.dir}/[artifact].[ext]" />
    </ivy:publish>
</target>
要检索,它将失败,因为找不到配置

因此,检索似乎只是没有引用ivy.xml,因此没有解析依赖项


这是有效的还是我误解了什么?

我现在已经解决了这个问题。我相信问题只是Nexus使用POM文件而不是Ivy文件工作(至少在默认情况下-我看不到任何相关的配置选项)

因此,解决方案是生成合适的POM并将其与Jar一起发布

<target name="publish">
    <property name="generated.ivy.file" value="${dist.dir}/ivy.xml" /> 
    <ivy:deliver deliverpattern="${generated.ivy.file}"
        organisation="${ivy.organisation}" 
        module="${ivy.module}" status="integration"
        revision="${ivy.revision}"
        pubrevision="SNAPSHOT"
        conf="impl" />

<ivy:makepom ivyfile="${generated.ivy.file}" 
    pomfile="${dist.dir}/${ivy.module}.pom"/>

    <ivy:publish resolver="nexus_snapshot" pubrevision="SNAPSHOT" 
        publishivy="false" status="integration" overwrite="true">
        <artifacts pattern="${dist.dir}/[artifact].[ext]" /> 
        <artifact name="${ivy.module}" type="pom" ext="pom"/>
    </ivy:publish> 
</target>


请注意,我首先为当前模块(以及我所需的配置)生成一个常春藤文件,以从中创建POM。

您只需将POM文件添加到Ivy.xml文件中的已发布工件列表中即可。通过这种方式,发布任务将使用artifacts模式属性获取它
conf="impl"
<target name="publish">
    <property name="generated.ivy.file" value="${dist.dir}/ivy.xml" /> 
    <ivy:deliver deliverpattern="${generated.ivy.file}"
        organisation="${ivy.organisation}" 
        module="${ivy.module}" status="integration"
        revision="${ivy.revision}"
        pubrevision="SNAPSHOT"
        conf="impl" />

<ivy:makepom ivyfile="${generated.ivy.file}" 
    pomfile="${dist.dir}/${ivy.module}.pom"/>

    <ivy:publish resolver="nexus_snapshot" pubrevision="SNAPSHOT" 
        publishivy="false" status="integration" overwrite="true">
        <artifacts pattern="${dist.dir}/[artifact].[ext]" /> 
        <artifact name="${ivy.module}" type="pom" ext="pom"/>
    </ivy:publish> 
</target>