共用方式為


JAVAToolInstaller@0 - JAVA 工具安裝程式 v0 工作

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

Syntax

# 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 檔案
string. 當 jdkSourceOption == LocalDirectory 時為必要。

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


azureResourceManagerEndpoint - Azure 訂用帳戶
string. 當 jdkSourceOption == AzureStorage 時為必要。

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


azureStorageAccountName - 儲存體帳戶名稱
string. 當 jdkSourceOption == AzureStorage 時為必要。

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


azureContainerName - 容器名稱
string. 當 jdkSourceOption == AzureStorage 時為必要。

指定 JDK 所在儲存體帳戶中的容器名稱。


azureCommonVirtualFile - 常見的虛擬路徑
string. 當 jdkSourceOption == AzureStorage 時為必要。

指定 Azure 儲存體容器內 JDK 的路徑。


jdkDestinationDirectory - 目的地目錄
string. 當 jdkSourceOption != 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 工具安裝程式 工作,代理程式執行時必須具備執行 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
要求
Capabilities 執行這項工作可滿足相同作業中任何後續工作的需求:JAVA、JDK
命令限制 此工作會使用下列 命令限制執行:受限制
可設定變數 此工作具有 設定下列變數的許可權:PATH,JAVA_HOME*
代理程式版本 2.182.1 或更新版本
工作類別 工具
需求 描述
管線類型 YAML、傳統組建、傳統版本
在 上執行 Agent、DeploymentGroup
要求
Capabilities 執行這項工作可滿足相同作業中任何後續工作的需求:JAVA、JDK
命令限制 任意
可設定變數 任意
代理程式版本 所有支援的代理程式版本。
工作類別 工具
需求 描述
管線類型 YAML、傳統組建、傳統版本
在 上執行 Agent、DeploymentGroup
要求
Capabilities 執行這項工作可滿足相同作業中任何後續工作的需求: JAVA
命令限制 任意
可設定變數 任意
代理程式版本 所有支援的代理程式版本。
工作類別 工具

另請參閱

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