如何在 Azure 上构建 jar 文件并复制到 Artifactory?

时间:2021-07-26 23:09:23

标签: java azure azure-pipelines artifactory

我有一个 Azure 管道,应该使用 maven 构建我的 Java 代码。 YAML 看起来像这样:

steps:
- task: Maven@3
  inputs:
    mavenPomFile: '$(system.defaultWorkingDirectory)/<project-name>/pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    goals: 'package'
     #allowBrokenSymlinks: 
    
# Copy jar file from a source folder to a target folder
- task: CopyFiles@1
  inputs:
    sourceFolder: '$(system.defaultWorkingDirectory)/<project-name>/target'
    contents: 'filename.jar' 
    targetFolder: '$(Build.ArtifactStagingDirectory)'
    cleanTargetFolder: false # Optional
    overWrite: true # Optional

我原以为 /target 中有一个 jar 文件,但那里什么也没显示。然后,由于没有创建 jar 文件,复制到 Artifactory 也不起作用。管道运行没有错误。 Azure 文档清晰如泥。

我是 Azure 和 Artifactory 的新手,所以如果你能提供帮助,请保持简单!

2 个答案:

答案 0 :(得分:1)

最简单也是最推荐的方法是使用 Artifactory Azure DevOps extension。 该扩展程序使用 JFrog CLI 构建您的 Maven JAR 并将其上传到 Artifactory。

下载并安装扩展程序后,您可以分两步配置管道

  1. 配置 Artifactory service connection
  2. 在您的管道中,配置 Artifactory Maven 构建。要将 JAR 上传到 Artifactory,请运行 Maven install 目标而不是 package

有关更多信息,请参阅:

  1. Extension documentation
  2. Webinar
  3. 有关 JFrog CLI 的一般信息。

答案 1 :(得分:0)

您是否尝试过使用通配符来获取罐子?

示例: -任务:CopyFiles@1 输入: sourceFolder: '$(system.defaultWorkingDirectory)//目标' 内容:*.jar targetFolder: '$(Build.ArtifactStagingDirectory)' cleanTargetFolder: false # 可选 overWrite: true # 可选