如何将解析的 ivy.xml 发布到 Nexus

Posted

技术标签:

【中文标题】如何将解析的 ivy.xml 发布到 Nexus【英文标题】:How to publish resolved ivy.xml to Nexus 【发布时间】:2018-02-17 07:46:10 【问题描述】:

我的工件是一个文本文件,其中包含一些文本(提交 ID)。这是我的 ivy.xml 和 build.xml

ivy.xml

<ivy-module version="2.0">  
<info organisation="org.myorg" 
      module="commit-info" 
      status="release"/>  
 <publications>  
     <artifact name="commit_info" type="text" ext="txt"/>  
 </publications>  
</ivy-module>  

build.xml

<project xmlns:ivy="antlib:org.apache.ivy.ant" name="SuperRoot" default="prepare" basedir=".">
<property file="../release.properties"/>

<path id="ivy.lib.path">
    <fileset dir="../lib" includes="*.jar"/>
</path>

<taskdef resource="org/apache/ivy/ant/antlib.xml"
         uri="antlib:org.apache.ivy.ant" 
         classpathref="ivy.lib.path"/>


<property name="organisation" value="org.myorg"/>
<property name="build.dir" value="."/>
<property name="ivy.dir" value="build/ivy"/>



<target name="init">
    <mkdir dir="build"/>
    <mkdir dir="build/ivy"/>
</target>


<target name="prepare" description="Generate POM">
    <ivy:settings file="../ivysettings.xml" />
    <ivy:retrieve />
    <!-- Optional: Intermediate file containing resolved version numbers -->
    <echo message="Using repo at $repo.host "/>
    <ivy:deliver deliverpattern="$ivy.dir/ivy.xml" 
            pubrevision="$publish.revision" 
            status="release"/>

    <!-- Generate the Maven POM -->
    <ivy:makepom ivyfile="$ivy.dir/ivy.xml" 
             pomfile="$build.dir/pom.xml"/>
</target>

<target name="publish" depends="init,prepare" description="Upload to Nexus">
    <ivy:resolve/>
    <ivy:publish organisation="org.myorg"  module="commit-info" 
               resolver="nexus-deploy" 
               pubrevision="$publish.revision" 
               overwrite="true" 
               publishivy="false" >
               <artifacts pattern="$build.dir/[artifact].[ext]"/>

    </ivy:publish>
  </target>
</project>

ant publish 创建文件并将其复制到我的存储库 (Nexus)。这不会复制“已解决”的 ivy.xml。如何发布?

【问题讨论】:

【参考方案1】:

变化

publishivy="false" 

 publishivy="true " 

解决了那部分。

【讨论】:

以上是关于如何将解析的 ivy.xml 发布到 Nexus的主要内容,如果未能解决你的问题,请参考以下文章

Ivy - 将解析结果输出到 ivy 文件

使用 Ivy-Ant 在 nexus 中发布工件:未经凭据授权?

在 Eclipse 中,如何对 Ivy 解析的 jar 进行排序

IVY 错误:找不到 ivy.xml 文件

从 Ivy.xml 下载依赖项

如何使用 Ivy 构建和单元测试?