Arc*_*ano 12 java azure-devops
我正在尝试使用 Maven 包装器而不是 Maven 任务来运行 Maven。但是,它失败了,因为它使用的是旧版本的 Java。JavaInstaller 任务似乎需要 JDK 的远程源,我宁愿避免这样做并使用可与 Maven 任务一起使用的任务,但我找不到它在任何地方的记录。
Mar*_*eis 17
您现在还可以使用该JavaToolInstaller
任务来激活预安装的 Java 版本之一,例如
- task: JavaToolInstaller@0
inputs:
versionSpec: '11'
jdkArchitectureOption: 'x64'
jdkSourceOption: 'PreInstalled'
Run Code Online (Sandbox Code Playgroud)
请参阅以下文档:https : //docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/java-tool-installer?view=azure-devops
它还将设置JAVA_HOME
并添加PATH
,请参阅源:https :
//github.com/microsoft/azure-pipelines-tasks/blob/46cca412451ac4418d6332114fca8ef8c3095de1/Tasks/JavaToolInstallerV0/javatoolinstaller.ts#L80
script
在为基于 Unix 的代理运行 Maven 之前添加以下内容
- script: |
echo "##vso[task.setvariable variable=JAVA_HOME]$(JAVA_HOME_11_X64)"
echo "##vso[task.setvariable variable=PATH]$(JAVA_HOME_11_X64)/bin:$(PATH)"
displayName: "Set java version"
Run Code Online (Sandbox Code Playgroud)
对于基于 Windows 的代理
- script: |
echo "##vso[task.setvariable variable=JAVA_HOME]$(JAVA_HOME_11_X64)"
echo "##vso[task.setvariable variable=PATH]$(JAVA_HOME_11_X64)\bin;$(PATH)"
displayName: "Set java version"
Run Code Online (Sandbox Code Playgroud)
这部分管道代码显示了如何选择 JAVA_HOME 值:https : //github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/Common/java-common/java-common.ts
要使用的 Java 版本可以通过env
Linux 或 macOS 的任务字段设置:
- script: |
java -version
env:
JAVA_HOME: $(JAVA_HOME_8_X64)
PATH: $(JAVA_HOME_8_X64)/bin:$(PATH)
Run Code Online (Sandbox Code Playgroud)
对于 Windows,将 PATH 中的冒号更改为分号:
- script: |
java -version
env:
JAVA_HOME: $(JAVA_HOME_8_X64)
PATH: $(JAVA_HOME_8_X64)/bin;$(PATH)
Run Code Online (Sandbox Code Playgroud)
Java 版本的替代品包括:
JAVA_HOME_7_X64
vs2017-win2016
,windows-2019
macos-10.14
,macos-10.15
ubuntu-16.04
,ubuntu-18.04
JAVA_HOME_8_X64
vs2017-win2016
,windows-2019
macos-10.14
,macos-10.15
ubuntu-16.04
, ubuntu-18.04
,ubuntu-20.04
JAVA_HOME_11_X64
vs2017-win2016
,windows-2019
macos-10.14
,macos-10.15
ubuntu-16.04
, ubuntu-18.04
,ubuntu-20.04
JAVA_HOME_12_X64
macos-10.14
,macos-10.15
ubuntu-16.04
,ubuntu-18.04
JAVA_HOME_13_X64
vs2017-win2016
,windows-2019
macos-10.14
,macos-10.15
JAVA_HOME_14_X64
macos-10.14
,macos-10.15
正如Martin Kreidenweis已经提到的,可以使用JavaToolInstaller 。但是,当在自托管代理
上使用此功能时,需要在代理上安装 Java,并且需要将所需的环境变量设置为指向安装目录。
JavaToolInstaller 使用从其配置派生的环境变量。习俗:
JAVA_HOME_${versionSpec}_${jdkArchitectureOption}
Run Code Online (Sandbox Code Playgroud)
我们可以在代理的主目录中的.env
文件中设置环境变量,如下所示:
JAVA_HOME_${versionSpec}_${jdkArchitectureOption}
Run Code Online (Sandbox Code Playgroud)
编辑后.env
,需要重新启动代理以使环境变量可用于管道。这可以通过(代理主页)完成:
JAVA_HOME_17_x64=/usr/lib/jvm/temurin-17-jdk-amd64
Run Code Online (Sandbox Code Playgroud)
请参阅Azure 文档。
之后可以添加一个步骤,例如:
./svc.sh stop
./svc.sh start
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6313 次 |
最近记录: |