从 Azure Devops 中的代码创建 AAR 项目

Creating an AAR artifact from code in Azure Devops

我有一个 android 库的代码,它被推送到 azure git,

我的主要目标是从中制作一个工件供以后的项目使用,我创建了一个如下所示的管道:

trigger:
   - master
    pool:
  vmImage: 'macos-latest'

steps:
- task: Gradle@2
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
- task: MavenAuthenticate@0
  inputs:
    artifactsFeeds: 'testArt'
    tasks: 'assembleRelease'

但是它没有创建任何东西,有什么想法我在这里做错了什么吗?我发现有关此特定请求的信息很少

感谢所有的帮手!

更新:

- task: Gradle@2
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    tasks: 'assembleRelease'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
- task: CopyFiles@2
  inputs:
    contents: '**/*.aar'
    targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
   targetPath: $(Build.ArtifactStagingDirectory)
   artifactName: 'FeedName'

- task: UniversalPackages@0
  inputs:
   command: publish
   publishDirectory: $(Build.ArtifactStagingDirectory)
   vstsFeedPublish: 'Project/FeedName'
   vstsFeedPackagePublish: 'com.package'  
   vstsPackageVersion: $(latestVersion)

新更新构建了一个 aar 文件,但我无法从 android studio 获取工件,是否正确使用了 UniversalPackages(没有它工件部分为空)?还是我应该使用其他东西?

Creating an AAR artifact from code in Azure Devops

要创建 AAR 工件,您可以检查是否已正确配置 Gradle 任务。

  • 如果您的 gradlew 文件不在目录中,请调整 workingDirectory 值 存储库的根。目录值应该相对于 存储库的根目录,例如 AndroidApps/MyApp 或 $(system.defaultWorkingDirectory)/AndroidApps/MyApp.
  • 调整 gradleWrapperFile 值,如果你的 gradlew 文件不在 存储库的根。文件路径值应相对于 存储库的根目录,例如 AndroidApps/MyApp/gradlew 或 $(system.defaultWorkingDirectory)/AndroidApps/MyApp/gradlew.

您可以检查该任务是否从输出日志中创建了任何 .aar.apk 文件。如果没有,您可能需要在您的问题中分享构建日志,以便我们检查它没有创建任何工件的原因。

您可以查看此文档 Build, test, and deploy Android apps 了解更多详细信息。

此外,如果任务 Gradle 生成工件,我们需要添加 Copy Files and Publish Build Artifacts 任务以将您的 APK 与构建记录一起存储或测试并将其部署到后续管道中:

- task: CopyFiles@2
  inputs:
    contents: '**/*.aar'
    targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1

希望对您有所帮助。