Установка Java 14 в конвейере Azure для агента MacOS

Мне нужно использовать Java 14 на размещенном агенте (macos-12), и я пытаюсь установить его с помощью сценария, а затем использую задачу JavaToolInstaller, чтобы сделать его доступным.

Я изменил скрипт из https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/java-tool-installer?view=azure-devops

jobs:
- job: RunApiTests
  pool:
    vmImage: macOS-12
  condition: ne(variables['Build.SourceBranch'], 'refs/heads/main')
  steps:
  - task: JavaToolInstaller@0
    displayName: Install Java 14
    inputs:
      versionSpec: '14'
      jdkArchitectureOption: 'x64'
      jdkSourceOption: AzureStorage
      azureResourceManagerEndpoint: {azureResourceManagerEndpoint}
      azureStorageAccountName: {azureStorageAccountName}
      azureContainerName: openjdk
      azureCommonVirtualFile: 'openjdk-14.0.2.zip'
      jdkDestinationDirectory: '$(agent.toolsDirectory)/jdk14'
      cleanDestinationDirectory: false

Ниже приведена ошибка, которую я получаю:

##[error]JDK file is not valid. Verify if JDK file contains only one root folder with 'bin' inside.

Я скачал 14.0.2 (build 14.0.2+12) jdk для Mac с https://jdk.java.net/archive/ и сжал только папку Home в zip-файл, потому что bin там.

Итак, согласно требованию, zip-файл содержит только одну корневую папку 'Home' с bin внутри.

Мне нужна помощь, почему я получаю эту ошибку.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я попытался протестировать ваш yaml в своем конвейере, и он работает. Ниже приведены мои шаги.

Я скачал этот пакет:

В моем zip у меня есть эти файлы:

Загружено в учетную запись хранения.

Ямл:

trigger:
- none

pool:
  vmImage: macos-12

steps:
- task: JavaToolInstaller@0
  inputs:
    versionSpec: '14'
    jdkArchitectureOption: 'x64'
    jdkSourceOption: 'AzureStorage'
    azureResourceManagerEndpoint: 'myEndpoint'
    azureStorageAccountName: 'teststorage'
    azureContainerName: 'test'
    azureCommonVirtualFile: 'homefolder.zip'
    jdkDestinationDirectory: '$(agent.toolsDirectory)/jdk14'
    cleanDestinationDirectory: false

Результат:

Есть ли причина, по которой вы оставили свойство «azureResourceManagerEndpoint» пустым?

murohima_1 21.11.2022 11:37

Просто чтобы скрыть название моей подписки, так как оно содержит мой идентификатор подписки. Это не пусто. Я отредактировал ответ.

Miao Tian-MSFT 21.11.2022 11:40

Удалось исправить проблему. Мне пришлось выбрать и заархивировать поднаправления (bin, conf, include и т. д.). Я заархивировал каталог, который раньше содержал подкаталоги.

murohima_1 21.11.2022 11:45

Другие вопросы по теме