Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install Java in an Azure DevOps pipeline?

One step in my Azure DevOps pipeline requires Java to be installed on the agent.

I found the "Java Tool Installer" task here:

https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/java-tool-installer?view=azure-devops

This looks, however, more like a SDK installer. I only need a Java runtime environment. I am looking for something like the Python installer task:

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.6'

Is there anything for Java getting close to this?

like image 921
hey Avatar asked Jun 24 '20 20:06

hey


People also ask

Does Azure DevOps use Java?

In this quickstart, you use the simplified Azure DevOps Starter experience to set up a continuous integration (CI) and continuous delivery (CD) pipeline for your Java app in Azure Pipelines. You can use Azure DevOps Starter to set up everything you need for developing, deploying, and monitoring your app.


Video Answer


2 Answers

Is there anything for Java getting close to this?

Test with the Python installer task, this task is used to specify a specific python version via setting the environment.

To achieve a similar purpose with Java, you could set the Java_Home and Path variable during the runtime.

You could add a powershell task at the first step.

Here is an example:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      echo "##vso[task.setvariable variable=JAVA_HOME]$(JAVA_HOME_11_X64)"
      echo "##vso[task.setvariable variable=PATH]$(JAVA_HOME_11_X64)\bin;$(PATH)"

The $(JAVA_HOME_11_X64) variable is an environment variable.

You could check this variable with the script env | sort. Then the supported value will list in the output.

For example:

Java version

In this case, the JAVA_HOME variable will be set as the expected value.

enter image description here

Hope this helps.

like image 121
Kevin Lu-MSFT Avatar answered Oct 11 '22 02:10

Kevin Lu-MSFT


Since Azure supports Docker, I would simply go for docker:

trigger:
- main

pr:
- main
- releases/*

pool:
  vmImage: 'ubuntu-20.04'

container: adoptopenjdk:latest

steps:
- script: ./gradlew check
like image 25
koppor Avatar answered Oct 11 '22 03:10

koppor