从Azure Pipeline运行maven作业时在java版本上出现错误



我在一个特定的代理上运行我的作业,并使用以下命令

- 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全局变量

相关内容

  • 没有找到相关文章

最新更新