共用方式為


JavaToolInstaller@0 - Java 工具安裝程式 v0 工作

使用此工作可從使用者提供的 Azure Blob 或工具快取取得特定版本的 Java,並設定 JAVA_HOME

語法

# Java tool installer v0
# Acquire a specific version of Java from a user-supplied Azure blob or the tool cache and sets JAVA_HOME.
- task: JavaToolInstaller@0
  inputs:
    versionSpec: '8' # string. Required. JDK version. Default: 8.
    jdkArchitectureOption: # 'x64' | 'x86'. Required. JDK architecture. 
    jdkSourceOption: # 'AzureStorage' | 'LocalDirectory' | 'PreInstalled'. Required. JDK source. 
    #jdkFile: # string. Required when jdkSourceOption == LocalDirectory. JDK file. 
    #azureResourceManagerEndpoint: # string. Required when jdkSourceOption == AzureStorage. Azure subscription. 
    #azureStorageAccountName: # string. Required when jdkSourceOption == AzureStorage. Storage account name. 
    #azureContainerName: # string. Required when jdkSourceOption == AzureStorage. Container name. 
    #azureCommonVirtualFile: # string. Required when jdkSourceOption == AzureStorage. Common virtual path. 
    #jdkDestinationDirectory: # string. Required when jdkSourceOption != PreInstalled. Destination directory. 
    #azureResourceGroupName: # string. Optional. Use when jdkSourceOption == AzureStorage. Resource Group name. 
    #cleanDestinationDirectory: true # boolean. Optional. Use when jdkSourceOption != PreInstalled. Clean destination directory. Default: true.
    #createExtractDirectory: true # boolean. Optional. Use when jdkSourceOption != PreInstalled. Create directory for extracting. Default: true.
# Java tool installer v0
# Acquire a specific version of Java from a user-supplied Azure blob or the tool cache and sets JAVA_HOME.
- task: JavaToolInstaller@0
  inputs:
    versionSpec: '8' # string. Required. JDK version. Default: 8.
    jdkArchitectureOption: # 'x64' | 'x86'. Required. JDK architecture. 
    jdkSourceOption: # 'AzureStorage' | 'LocalDirectory' | 'PreInstalled'. Required. JDK source. 
    #jdkFile: # string. Required when jdkSourceOption == LocalDirectory. JDK file. 
    #azureResourceManagerEndpoint: # string. Required when jdkSourceOption == AzureStorage. Azure subscription. 
    #azureStorageAccountName: # string. Required when jdkSourceOption == AzureStorage. Storage account name. 
    #azureContainerName: # string. Required when jdkSourceOption == AzureStorage. Container name. 
    #azureCommonVirtualFile: # string. Required when jdkSourceOption == AzureStorage. Common virtual path. 
    #jdkDestinationDirectory: # string. Required when jdkSourceOption != PreInstalled. Destination directory. 
    #cleanDestinationDirectory: true # boolean. Optional. Use when jdkSourceOption != PreInstalled. Clean destination directory. Default: true.
    #createExtractDirectory: true # boolean. Optional. Use when jdkSourceOption != PreInstalled. Create directory for extracting. Default: true.
# Java tool installer v0
# Acquire a specific version of Java from a user-supplied Azure blob or the tool cache and sets JAVA_HOME.
- task: JavaToolInstaller@0
  inputs:
    versionSpec: '8' # string. Required. JDK version. Default: 8.
    jdkArchitectureOption: # 'x64' | 'x86'. Required. JDK architecture. 
    jdkSourceOption: # 'AzureStorage' | 'LocalDirectory' | 'PreInstalled'. Required. JDK source. 
    #jdkFile: # string. Required when jdkSourceOption == LocalDirectory. JDK file. 
    #azureResourceManagerEndpoint: # string. Required when jdkSourceOption == AzureStorage. Azure subscription. 
    #azureStorageAccountName: # string. Required when jdkSourceOption == AzureStorage. Storage account name. 
    #azureContainerName: # string. Required when jdkSourceOption == AzureStorage. Container name. 
    #azureCommonVirtualFile: # string. Required when jdkSourceOption == AzureStorage. Common virtual path. 
    #jdkDestinationDirectory: # string. Required when jdkSourceOption != PreInstalled. Destination directory. 
    #cleanDestinationDirectory: true # boolean. Optional. Use when jdkSourceOption != PreInstalled. Clean destination directory. Default: true.
# Java tool installer v0
# Acquire a specific version of Java from a user-supplied Azure blob or the tool cache and sets JAVA_HOME.
- task: JavaToolInstaller@0
  inputs:
    versionSpec: '8' # string. Required. JDK version. Default: 8.
    jdkArchitectureOption: # 'x64' | 'x86'. Required. JDK architecture. 
    jdkSourceOption: # 'AzureStorage' | 'LocalDirectory'. Required. JDK source. 
    #jdkFile: # string. Required when jdkSourceOption == LocalDirectory. JDK file. 
    #azureResourceManagerEndpoint: # string. Required when jdkSourceOption == AzureStorage. Azure subscription. 
    #azureStorageAccountName: # string. Required when jdkSourceOption == AzureStorage. Storage account name. 
    #azureContainerName: # string. Required when jdkSourceOption == AzureStorage. Container name. 
    #azureCommonVirtualFile: # string. Required when jdkSourceOption == AzureStorage. Common virtual path. 
    jdkDestinationDirectory: # string. Required. Destination directory. 
    #cleanDestinationDirectory: true # boolean. Clean destination directory. Default: true.
# Java Tool Installer v0
# Acquires a specific version of Java from a user supplied Azure blob or the tools cache and sets JAVA_HOME. Use this task to change the version of Java used in Java tasks.
- task: JavaToolInstaller@0
  inputs:
    versionSpec: '8' # string. Required. JDK version. Default: 8.
    jdkArchitectureOption: # 'x64' | 'x86'. Required. JDK architecture. 
    jdkSourceOption: # 'AzureStorage' | 'LocalDirectory'. Required. JDK source. 
    #jdkFile: # string. Required when jdkSourceOption == LocalDirectory. JDK file. 
    #azureResourceManagerEndpoint: # string. Required when jdkSourceOption == AzureStorage. Azure subscription. 
    #azureStorageAccountName: # string. Required when jdkSourceOption == AzureStorage. Storage account name. 
    #azureContainerName: # string. Required when jdkSourceOption == AzureStorage. Container name. 
    #azureCommonVirtualFile: # string. Required when jdkSourceOption == AzureStorage. Common virtual path. 
    jdkDestinationDirectory: # string. Required. Destination directory. 
    #cleanDestinationDirectory: true # boolean. Clean destination directory. Default: true.

輸入

versionSpec - JDK 版本
string。 必填。 預設值:8

指定要在路徑上使用的 JDK 版本。 使用整數版本,例如 10。


jdkArchitectureOption - JDK 架構
string。 必填。 允許的值:x64x86

指定 JDK 的架構 (x86x64)。


jdkSourceOption - JDK 來源
string。 必填。 允許的值:AzureStorage(Azure 記憶體)、LocalDirectory(本機目錄)、PreInstalled(預安裝)。

指定壓縮 JDK 的來源。 來源可以是代理程式或來源存放庫上的 Azure Blob 記憶體或本機目錄,或者您可以使用預安裝的 Java 版本(適用於Microsoft裝載的代理程式)。 請參閱下列範例,以瞭解如何使用預安裝的 Java 版本。


jdkSourceOption - JDK 來源
string。 必填。 允許的值:AzureStorage(Azure 記憶體)、LocalDirectory(本機目錄)。

指定壓縮 JDK 的來源。 來源可以是代理程式或來源存放庫上的 Azure Blob 記憶體或本機目錄,或者您可以使用預安裝的 Java 版本(適用於Microsoft裝載的代理程式)。 請參閱下列範例,以瞭解如何使用預安裝的 Java 版本。


jdkFile - JDK 檔案
stringjdkSourceOption == LocalDirectory時為必要項。

指定包含壓縮 JDK 之 JDK 封存盤案的路徑。 路徑可能位於來源存放庫或代理程式上的本機路徑中。 檔案應該是封存盤案(.zip、.tar.gz、.7z),其中包含根層級或單一目錄內的 bin 資料夾。 MacOS 支援.pkg和.dmg檔案,其中只包含一個.pkg檔案。


azureResourceManagerEndpoint - Azure 訂用帳戶
stringjdkSourceOption == AzureStorage時為必要項。

指定 JDK 的 Azure Resource Manager 訂用帳戶。


azureStorageAccountName - 記憶體帳戶名稱
stringjdkSourceOption == AzureStorage時為必要項。

指定 Azure 傳統或 Resource Manager 儲存器帳戶。 選取 JDK 所在的記憶體帳戶名稱。


azureContainerName - 容器名稱
stringjdkSourceOption == AzureStorage時為必要項。

指定 JDK 所在記憶體帳戶中的容器名稱。


azureCommonVirtualFile - 一般虛擬路徑
stringjdkSourceOption == AzureStorage時為必要項。

指定 Azure 記憶體容器內 JDK 的路徑。


jdkDestinationDirectory - 目的地目錄
stringjdkSourceOption != PreInstalled時為必要項。

指定應該擷取 JDK 的目的地目錄。 在 Linux 和 Windows 上,這會作為 JDK 安裝的目的地目錄。 在macOS上,此目錄是用來擷取.dmg的暫存資料夾,因為macOS不支援將 JDK 安裝至特定目錄。


jdkDestinationDirectory - 目的地目錄
string。 必填。

指定應該擷取 JDK 的目的地目錄。 在 Linux 和 Windows 上,這會作為 JDK 安裝的目的地目錄。 在macOS上,此目錄是用來擷取.dmg的暫存資料夾,因為macOS不支援將 JDK 安裝至特定目錄。


azureResourceGroupName - 資源組名
string。 自選。 jdkSourceOption == AzureStorage時使用 。

記憶體帳戶的資源組名。


cleanDestinationDirectory - 清除目的地目錄
boolean。 自選。 jdkSourceOption != PreInstalled時使用 。 預設值:true

指定在 JDK 擷取至目的地目錄之前清除目的地目錄的選項。


cleanDestinationDirectory - 清除目的地目錄
boolean。 預設值:true

指定在 JDK 擷取至目的地目錄之前清除目的地目錄的選項。


createExtractDirectory - 建立用於擷取 的目錄
boolean。 自選。 jdkSourceOption != PreInstalled時使用 。 預設值:true

根據預設,工作會建立類似 JAVA_HOME_8_X64_OpenJDK_zip 的目錄來擷取 JDK。 此選項會停用該資料夾的建立,如果設定為 false,JDK 會改為位於 jdkDestinationDirectory 的根目錄中。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性

輸出變數

沒有。

言論

使用此工作可從使用者提供的 Azure Blob 取得特定版本的 Java、來源或代理程式上的位置,或工具快取。 工作也會設定 JAVA_HOME 環境變數。 使用此工作來變更 Java 工作中使用的 Java 版本。

注意

若要在 macOS 上執行 Java Tool Installer 工作,代理程式執行時必須有許可權執行 sudo 命令,而不需要密碼。 您可以遵循後續步驟來啟用此權限:

  1. 執行 sudo visudo 命令。 sudoers 檔案隨即開啟以供編輯。
  2. 移至檔案底部,並新增下列這一行:user ALL=NOPASSWD: /usr/sbin/installer (以實際的用戶別名取代使用者)。
  3. 儲存並關閉檔案。

例子

以下是從Linux上的本機目錄取得封存盤案的範例。 檔案應該是 JAVA_HOME 目錄的封存盤案(.zip、.gz),因此它包含 binlibincludejre等目錄。

  - task: JavaToolInstaller@0
    inputs:
      versionSpec: "11"
      jdkArchitectureOption: x64
      jdkSourceOption: LocalDirectory
      jdkFile: "/builds/openjdk-11.0.2_linux-x64_bin.tar.gz"
      jdkDestinationDirectory: "/builds/binaries/externals"
      cleanDestinationDirectory: true

以下是從 Azure 記憶體下載封存盤案的範例。 檔案應該是 JAVA_HOME 目錄的封存盤案(.zip、.gz),因此它包含 binlibincludejre等目錄。

- task: JavaToolInstaller@0
  inputs:
    versionSpec: '6'
    jdkArchitectureOption: 'x64'
    jdkSourceOption: AzureStorage
    azureResourceManagerEndpoint: myARMServiceConnection
    azureStorageAccountName: myAzureStorageAccountName
    azureContainerName: myAzureStorageContainerName
    azureCommonVirtualFile: 'jdk1.6.0_45.zip'
    jdkDestinationDirectory: '$(agent.toolsDirectory)/jdk6'
    cleanDestinationDirectory: false

以下是使用「預安裝」功能的範例。 這項功能可讓您使用預安裝在Microsoft裝載代理程式的 Java 版本。 您可以在載入的代理程式資料表中,包含的軟體資料列中找到可用的預安裝 Java 版本,

- task: JavaToolInstaller@0
  inputs:
    versionSpec: '8'
    jdkArchitectureOption: 'x64'
    jdkSourceOption: 'PreInstalled'

要求

要求 描述
管線類型 YAML、傳統組建、傳統版本
執行於 Agent、DeploymentGroup
需求 沒有
功能 執行此工作符合下列 要求, 相同作業中的任何後續工作:Java、JDK
命令限制 此工作會使用下列 命令限制執行: 受限制
Settable 變數 此工作具有 設定下列變數的許可權:PATH、JAVA_HOME*
代理程式版本 2.182.1 或更新
工作類別 工具
要求 描述
管線類型 YAML、傳統組建、傳統版本
執行於 Agent、DeploymentGroup
需求 沒有
功能 執行此工作符合下列 要求, 相同作業中的任何後續工作:Java、JDK
命令限制 任何
Settable 變數 任何
代理程式版本 所有支援的代理程式版本。
工作類別 工具
要求 描述
管線類型 YAML、傳統組建、傳統版本
執行於 Agent、DeploymentGroup
需求 沒有
功能 執行此工作符合下列 要求, 相同作業中的任何後續工作: Java
命令限制 任何
Settable 變數 任何
代理程式版本 所有支援的代理程式版本。
工作類別 工具

另請參閱

如需工具安裝程式和範例的說明,請參閱 工具安裝程式