【问题标题】:How to deploy env(dev, test, prod) specific Artifacts to Artifactory form Jenkins如何将 env(dev、test、prod)特定的 Artifacts 部署到 Artifactory form Jenkins
【发布时间】:2017-08-14 19:06:15
【问题描述】:

我正在使用配置文件为开发、测试和生产环境创建 3 个工件(战争),如下所示:

clean install -P dev
cp target/ABC.war output/ABC-dev-${BUILD_NUMBER}.war

clean install -P test
cp target/ABC.war output/ABC-test-${BUILD_NUMBER}.war

clean install -P prod
cp target/ABC.war output/ABC-prod-${BUILD_NUMBER}.war

要从 Jenkins 执行此操作,我正在使用 Jenkins 插件“调用顶级 Maven 目标”。

一旦创建了所有战争,我想将它们部署到 Artifactory!

我用谷歌搜索了很多,但没有找到任何关于将我的工件部署到 Artifactory 的信息。

注意:我可以使用“clean deploy -P”构建和部署我的工件 dev”,但在这种情况下,我无法修改我的工件名称。 (Companies Artifactory 不允许在没有版本控制的情况下进行部署 启用)

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: maven jenkins war artifactory artifacts


    【解决方案1】:

    您可以使用cURL 将您的war 文件上传到 Artifactory。

    $ curl -v --user username:password --data-binary @/local/path/to/war-file/ABC-dev.war -X PUT "http://org.artifactory.com/artifactory/repo_name/folder_name/ABC-dev-${BUILD_NUMBER}.war
    

    "

    【讨论】:

    • 我尝试了 curl,但在这种情况下,我只上传了一个 war 文件,而不是其他文件(war.md5、war.sha1、pom、pom.md5、pom.sha1)!另外,我在我的 pom.xml 中使用了 Jenkins BUILD_NUMBER 的版本号并使用了“clean deploy -P dev”,它上传了所有内容(war、war.md5、war.sha1、pom、pom.md5、pom.sha1)但 pom .xml 仍然有变量 ${BUILD_NUMBER} 而不是值。
    • 战争也在上传,但上面的 curl 似乎损坏了,它只有 41 个字节!
    【解决方案2】:

    您可以使用JFrog CLI 根据模式将不同的文件发布到不同的位置。例如:

    jfrog rt u "*dev*" "dev-repo/path/to/file"
    jfrog rt u "*test*" "test-repo/path/to/file"
    

    也就是说,您不必知道确切的文件名,并且可以使用该模式将文件上传到正确的位置。

    这就是你要找的吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-26
      • 2016-10-13
      • 2018-02-17
      • 2018-01-17
      • 1970-01-01
      • 2014-07-26
      • 2017-02-19
      • 2020-09-30
      相关资源
      最近更新 更多