我在一个特定的代理上运行我的作业,并使用以下命令
- script: |
java -version
env:
JAVA_HOME: $(JAVA_HOME_11_X64)
PATH: $(JAVA_HOME_11_X64)/bin:$(PATH)
输出openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.18.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.18.04, mixed mode, sharing)
但是当maven命令运行时,它找不到java,所以我应该在这里传递什么。Openjdk 11.0.11存在于代理上,如何在maven中传递它?我试着通过1.8和11.0.11,但它也给出了错误。如何解决这个问题,我到底应该在maven任务中传递什么?
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '11'
jdkArchitectureOption: 'x64'
输出##[error]Unhandled: Failed to find the specified JDK version. Please ensure the specified JDK version is installed on the agent and the environment variable 'JAVA_HOME_11_X64' exists and is set to the location of a corresponding JDK or use the [Java Tool Installer](https://go.microsoft.com/fwlink/?linkid=875287) task to install the desired JDK.
Finishing: Maven
在Maven任务中,如果您需要使用JAVA 11,您可以尝试设置jdkVersionOption1.11到.
例如:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.11'
mavenVersionOption: 'Default'
根据您的描述,JAVA 11已安装在代理上。
如果这个问题仍然存在,你可以为Java 11配置Pipeline变量。
您可以添加命令行任务/PowerShell任务/Bash任务来执行以下命令。
- 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)"
在这种情况下,java参数将被设置为Pipeline全局变量