【问题标题】:Ivy Publishing multiple jars in Nexus with different version Number常春藤在 Nexus 中发布多个具有不同版本号的 jar
【发布时间】:2012-06-18 10:46:13
【问题描述】:

如何使用 ivy 和 ant 在 Nexus Sonatype Repository 中发布多个具有不同版本号的 jar 文件。

如何编写ivy.xml文件??

假设我有以下两个 jar 文件

  1. addressing-1.0.jar 和
  2. castor-1.3.jar

我应该如何在 ivy.xml 中提供版本号,因为这里有两个不同的版本号(1.0 和 1.3)以在 Nexus Sonatype 存储库中发布这些 jar 文件并使用适当的 版本号。

谢谢你

正在寻找对此问题的答复。 请

【问题讨论】:

    标签: ivy


    【解决方案1】:

    一个构建发布的所有文件都将与同一个发布版本相关联。

    我怀疑您需要做的是上传依赖项?在这种情况下,最简单的方法是使用 Nexus GUI 或以下答案

    说明

    ivy 文件既描述了项目依赖关系,也描述了项目生成和发布的文件。

    例如,以下文件列出了 ivy 将上传到 Nexus 的两个文件,一个 jar 和一个 POM 文件:

    <ivy-module version='2.0'>
    
        <info organisation="com.myspotonontheweb" module="donaldduck"/>
    
        <publications>
            <artifact name="donaldduck" type="jar"/>
            <artifact name="donaldduck" type="pom"/>
        </publications>
    
        <dependencies>
             ..
             ..
        <dependencies/>
    
    </ivy-module>
    

    重点是...此模块发布的所有文件都将具有相同的版本号。 这是由发布任务指定的(参见 pubrevision 属性):

    <ivy:publish resolver="nexus" pubrevision="${publish.revision}" overwrite="true" publishivy="false" >
        <artifacts pattern="${build.dir}/[artifact].[ext]"/>
    </ivy:publish>
    

    观察

    您示例中的文件看起来像从Maven Central 获得的文件。这意味着它们会被您的 Nexus 服务器自动代理,并且可以作为依赖项包含在您的项目中:

        <dependencies>
            <dependency org="net.sourceforge.addressing" name="addressing" rev="1.1.1"/>
            <dependency org="org.codehaus.castor" name="castor" rev="1.2"/>
        <dependencies/>
    

    【讨论】:

    • 所以没有其他方法可以使用 ivy 和 ant 发布具有不同版本号的 jar 吗?
    • 你没有抓住重点。由 ivy 模块或 Maven POM 发布的工件通常具有相同的修订号。您可以使用两个不同的 ivy 文件来实现您想要实现的目标,但是您付出了很多努力却收效甚微。按照我关于 uoloading Maven artifacts 的链接,以最简单的方式将某些东西放入 Maven(使用命令行)
    猜你喜欢
    • 1970-01-01
    • 2013-09-19
    • 2015-12-16
    • 2016-10-24
    • 2011-07-20
    • 2012-09-11
    • 2013-09-23
    • 2011-09-07
    • 2016-12-31
    相关资源
    最近更新 更多