Jenkins Windows slave: 这个环境没有提供编译器。也许您 运行 在 JRE 而不是 JDK
Jenkins Windows slave: No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
我刚刚设置了一个新的 jenkins slave,它是 运行ning Windows server 2012。我已经安装了 jdk-8u221-windows-x64 并设置了 Java_home, 路径如下
C:\Users\Administrator>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_221\
C:\Users\Administrator>echo %PATH%
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\
Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\
Program Files\Amazon\cfn-bootstrap\;C:\Program Files\Git\cmd;C:\Program Files\Ja
va\jdk1.8.0_221\bin;C:\maven\bin;C:\maven\bin
然而,build job 运行ning in this slave 总是抱怨:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
知道是什么原因造成的吗?
2019 年 9 月 11 日更新
我按照Technext建议的方法2配置slave节点
在作业构建配置中,我在 JDK 选项中选择了(系统)。如果我选择 JDK 8 update 221,此构建作业 运行 成功,但我想使用一个(系统)JDK,它将从此节点中的环境变量中获取,因此我可以切换到另一个从节点而不更改 JDK 选项。
但是,当我远程连接到此服务器并打开命令提示符时,转到此项目的工作区文件夹,假设:C:\jenkins_slave\workspace\project01\,然后键入命令:mvn clean install,它运行 没有抱怨 Jenkins 的 jdk 或 jre 作为 运行。
您可以根据自己的需要使用以下任何一种方法:
方法一)
请按照以下步骤配置您的 Windows' 节点,使其指向您要使用的 JDK:
前往 Manage Jenkins
> Global Tool Configuration
> JDK > Add JDK
因为您已经安装了 Java,请取消选中复选框 Install automatically
在Name
部分,提供一些有意义的标识符即可,不一定JAVA_HOME
。现在在 JAVA_HOME
文本框中,您可以提供任何您想要的值,因为您无论如何都会为您的 Windows 节点使用不同的值。
现在转到 Manage Jenkins
> Manage Nodes
>(转到 Windows 节点的 Configure
部分)> Node Properties
现在启用 Tool Locations
复选框。单击 Add
> 从下拉列表中,select 您在 Global Tool Configuration
部分 JDK 中提供的名称
现在您必须为 Windows 节点提供 JAVA_HOME 路径。所以无论它在哪里,只需在 Home
文本框中提及该路径,如下所示:
方法二)
转到 Manage Jenkins
> Manage Nodes
>(转到 Windows 节点的 Configure
部分)> Node Properties
现在启用显示 Environment variables
> Add
的复选框
- 在
Name
文本框中,写Path
(不是PATH
)
- 在
Value
文本框中,写下你的JDK安装路径到bin
,如下图
根据您的情况,添加以下内容:C:\Program Files\Java\jdk1.8.0_221\bin;C:\Windows\System32;C:\maven-3.6.1\bin;%PATH%
我没有在 PATH 中设置 Maven,所以我将它添加到 Node 的配置中,如上所示。
注意:在 Value
文本框中,使用分号 (;) 作为分隔符而不是逗号 (,)
作业的 JDK 配置:
工作命令:
作业的输出:
方法三)
在您的 Windows 节点配置中,启用 Environment variables
并添加以下具有 相关 值
的变量
姓名:java.home
值:C:\Program Files\Java\jdk1.8.0_221\jre
注:是java.home
(如下图都是小写的)
JAVA_HOME
需要指向 JDK 安装(maven 需要 tools.jar
)但是 Maven 实际上 在 JDK 到 运行 本身。
当使用 mvn -version
时,Maven 使用 Java 的内部 java.home
属性。此 属性 与 JAVA_HOME
环境设置不同,因此它可能会愚弄您。它实际上是一个动态 属性 向您显示哪个 JRE 运行正在您的代码中。
参考:Java_home in Maven
我刚刚设置了一个新的 jenkins slave,它是 运行ning Windows server 2012。我已经安装了 jdk-8u221-windows-x64 并设置了 Java_home, 路径如下
C:\Users\Administrator>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_221\
C:\Users\Administrator>echo %PATH%
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\
Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\
Program Files\Amazon\cfn-bootstrap\;C:\Program Files\Git\cmd;C:\Program Files\Ja
va\jdk1.8.0_221\bin;C:\maven\bin;C:\maven\bin
然而,build job 运行ning in this slave 总是抱怨:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
知道是什么原因造成的吗?
2019 年 9 月 11 日更新
我按照Technext建议的方法2配置slave节点
在作业构建配置中,我在 JDK 选项中选择了(系统)。如果我选择 JDK 8 update 221,此构建作业 运行 成功,但我想使用一个(系统)JDK,它将从此节点中的环境变量中获取,因此我可以切换到另一个从节点而不更改 JDK 选项。
但是,当我远程连接到此服务器并打开命令提示符时,转到此项目的工作区文件夹,假设:C:\jenkins_slave\workspace\project01\,然后键入命令:mvn clean install,它运行 没有抱怨 Jenkins 的 jdk 或 jre 作为 运行。
您可以根据自己的需要使用以下任何一种方法:
方法一)
请按照以下步骤配置您的 Windows' 节点,使其指向您要使用的 JDK:
前往
Manage Jenkins
>Global Tool Configuration
> JDK >Add JDK
因为您已经安装了 Java,请取消选中复选框
Install automatically
在
Name
部分,提供一些有意义的标识符即可,不一定JAVA_HOME
。现在在JAVA_HOME
文本框中,您可以提供任何您想要的值,因为您无论如何都会为您的 Windows 节点使用不同的值。
现在转到
Manage Jenkins
>Manage Nodes
>(转到 Windows 节点的Configure
部分)>Node Properties
现在启用
Tool Locations
复选框。单击Add
> 从下拉列表中,select 您在Global Tool Configuration
部分 JDK 中提供的名称现在您必须为 Windows 节点提供 JAVA_HOME 路径。所以无论它在哪里,只需在
Home
文本框中提及该路径,如下所示:
方法二)
转到 Manage Jenkins
> Manage Nodes
>(转到 Windows 节点的 Configure
部分)> Node Properties
现在启用显示 Environment variables
> Add
- 在
Name
文本框中,写Path
(不是PATH
) - 在
Value
文本框中,写下你的JDK安装路径到bin
,如下图
根据您的情况,添加以下内容:C:\Program Files\Java\jdk1.8.0_221\bin;C:\Windows\System32;C:\maven-3.6.1\bin;%PATH%
我没有在 PATH 中设置 Maven,所以我将它添加到 Node 的配置中,如上所示。
注意:在 Value
文本框中,使用分号 (;) 作为分隔符而不是逗号 (,)
作业的 JDK 配置:
工作命令:
作业的输出:
方法三)
在您的 Windows 节点配置中,启用 Environment variables
并添加以下具有 相关 值
姓名:java.home
值:C:\Program Files\Java\jdk1.8.0_221\jre
注:是java.home
(如下图都是小写的)
JAVA_HOME
需要指向 JDK 安装(maven 需要 tools.jar
)但是 Maven 实际上 在 JDK 到 运行 本身。
当使用 mvn -version
时,Maven 使用 Java 的内部 java.home
属性。此 属性 与 JAVA_HOME
环境设置不同,因此它可能会愚弄您。它实际上是一个动态 属性 向您显示哪个 JRE 运行正在您的代码中。
参考:Java_home in Maven