首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Azure Devops代理中使用特定版本的Java而不下载?

如何在Azure Devops代理中使用特定版本的Java而不下载?
EN

Stack Overflow用户
提问于 2020-04-09 15:44:15
回答 3查看 20.9K关注 0票数 27

我试图使用Maven包装来运行Maven,而不是使用Maven任务。但是,它失败了,因为它使用的是一个旧版本的Java。JavaInstaller任务似乎需要一个用于JDK的远程源代码,我宁愿避免这样做,而使用与Maven任务一起工作的那个,但是我在任何地方都找不到它的文档。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-08 10:50:43

您还可以使用现在任务来激活预装的JavaToolInstaller版本之一。

代码语言:javascript
复制
- task: JavaToolInstaller@0
  inputs:
    versionSpec: '11'
    jdkArchitectureOption: 'x64'
    jdkSourceOption: 'PreInstalled'

见以下文档:https://learn.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

票数 46
EN

Stack Overflow用户

发布于 2020-07-28 01:36:36

要使用的Java版本可以通过用于Linux或macOS的任务的env字段设置:

代码语言:javascript
复制
- script: |
    java -version
  env:
    JAVA_HOME: $(JAVA_HOME_8_X64)
    PATH: $(JAVA_HOME_8_X64)/bin:$(PATH)

对于Windows,将路径中的冒号更改为分号:

代码语言:javascript
复制
- script: |
    java -version
  env:
    JAVA_HOME: $(JAVA_HOME_8_X64)
    PATH: $(JAVA_HOME_8_X64)/bin;$(PATH)

Java版本的备选方案包括:

  • JAVA_HOME_7_X64
    • 可在Windows上获得:vs2017-win2016windows-2019
    • macOS上的Avaiable:macos-10.14macos-10.15
    • 可在Linux上获得:ubuntu-16.04ubuntu-18.04

  • JAVA_HOME_8_X64
    • 可在Windows上获得:vs2017-win2016windows-2019
    • 可在macOS上获得:macos-10.14macos-10.15
    • 可在Linux上获得:ubuntu-16.04ubuntu-18.04ubuntu-20.04

  • JAVA_HOME_11_X64
    • 可在Windows上获得:vs2017-win2016windows-2019
    • 可在macOS上获得:macos-10.14macos-10.15
    • 可在Linux上获得:ubuntu-16.04ubuntu-18.04ubuntu-20.04

  • JAVA_HOME_12_X64
    • 可在macOS上获得:macos-10.14macos-10.15
    • 可在Linux上获得:ubuntu-16.04ubuntu-18.04

  • JAVA_HOME_13_X64
    • 可在Windows上获得:vs2017-win2016windows-2019
    • 可在macOS上获得:macos-10.14macos-10.15

  • JAVA_HOME_14_X64
    • 可在macOS上获得:macos-10.14macos-10.15
票数 15
EN

Stack Overflow用户

发布于 2022-05-20 07:06:13

正如马丁·克莱登维斯已经提到的那样,可以使用JavaToolInstaller

但是,当在自托管代理上使用时,需要在代理上安装Java,并且需要将所需的环境变量设置为指向安装目录。

JavaToolInstaller使用从其配置派生的环境变量。公约:

代码语言:javascript
复制
JAVA_HOME_${versionSpec}_${jdkArchitectureOption}

我们可以在代理的主目录中的.env文件中设置环境变量,如下所示:

代码语言:javascript
复制
JAVA_HOME_17_x64=/usr/lib/jvm/temurin-17-jdk-amd64

编辑.env后,需要重新启动代理,使环境变量可用于管道。这可以通过(代理人的家)来完成。

代码语言:javascript
复制
./svc.sh stop
./svc.sh start

Azure文档

在此之后,可以添加如下步骤:

代码语言:javascript
复制
- task: JavaToolInstaller@0
 inputs:
   versionSpec: '17'
   jdkArchitectureOption: 'x64'
   jdkSourceOption: 'PreInstalled'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61124946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档