【问题标题】:Setting up an alias name for jar in artifactory在 artifactory 中为 jar 设置别名
【发布时间】:2017-08-04 16:49:33
【问题描述】:

我有一个 gradle 项目,其中构建了 jar 并将其推送到工件。我总是希望每个构建/新工件都被称为可以在外部使用的最新版本。我如何通过gradle实现它?我可以为工件设置类似“最新”的别名,因此在任何时候我的最新标签都会指向可以添加为依赖项的最新 jar?

例如:abc-1.0-latest.jar 应该总是为我获取最新的构建,无论我在内部运行了多少构建。

【问题讨论】:

    标签: java gradle build artifactory


    【解决方案1】:

    嗯 - 这可能是一件很奇怪的事情?

    所以,您想多次发布具有相同版本但具有不同签名的工件?那是;工件abc-1.0 可以进化,但版本控制保持不变?不知道这是不是一个好习惯。

    无论如何,为什么不研究一下 maven/gradle 作品的版本控制?可能是您可以添加类似这样的内容来始终获取abc-library 的最新工件:

    马文:

    <dependency>
      <artifactId>abc</artifactId>
      <groupId>com.whatever</groupId>
      <version>[1.0,)</version>
    <dependency>
    

    分级:

    dependencies {
      compile 'com.whatever:abc:1.+'
    }
    

    在这种情况下,版本 1.1,如果可用,将从 artifactory 中获取。

    但请记住,您的代码不容易重建,因为将使用动态依赖方法获取工件。

    【讨论】:

      【解决方案2】:

      您的用例听起来确实很奇怪,而且不符合最佳实践。

      看起来你真正需要的是使用maven snapshot versions

      【讨论】:

        【解决方案3】:

        您可以完全避免指定版本,然后 Gradle 会选择最新的版本

        dependencies {
        compile 'com.google.guava:guava:+'
        }
        

        或者如果你想要最新的 7 个版本

        dependencies {
        compile 'com.google.guava:guava:7.+'
        }
        

        编辑:对不起,我误解了这个问题。 如果您希望您的项目始终使用最新代码,在这种情况下创建一个多项目并依赖项目“构建”结果不是更好吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-31
          • 1970-01-01
          • 2014-12-01
          • 2023-04-04
          • 1970-01-01
          • 1970-01-01
          • 2015-03-28
          • 2014-10-21
          相关资源
          最近更新 更多