共用方式為


JavaToolInstaller@1 - Java 工具安裝程式 v1 工作

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

語法

# Java tool installer v1
# Acquire a specific version of Java from a user-supplied Azure blob or the tool cache and sets JAVA_HOME.
- task: JavaToolInstaller@1
  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.

輸入

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 版本。

注意

此版本的工作會使用 Azure Resource Manager 服務連線來存取 Azure 記憶體, 使用工作負載身分識別同盟和 Azure RBAC 進行設定。 如需詳細資訊,請參閱 指派 Azure 角色以存取 blob 數據


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 安裝至特定目錄。


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

記憶體帳戶的資源組名。


cleanDestinationDirectory - 清除目的地目錄
boolean。 自選。 jdkSourceOption != PreInstalled時使用 。 預設值: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@1
    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等目錄。

注意

此版本的工作會使用 Azure Resource Manager 服務連線來存取 Azure 記憶體, 使用工作負載身分識別同盟和 Azure RBAC 進行設定。 如需詳細資訊,請參閱 指派 Azure 角色以存取 blob 數據

- task: JavaToolInstaller@1
  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@1
  inputs:
    versionSpec: '8'
    jdkArchitectureOption: 'x64'
    jdkSourceOption: 'PreInstalled'

要求

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