我刚刚设置了一个运行Windows Server 2012的新jenkins从属服务器。我已经安装了jdk-8u221-windows-x64并设置了Java_home,如下所示的路径
field_3
但是,在此从属中运行的构建作业始终会抱怨:
在此环境中不提供编译器。也许您在JRE而不是JDK上运行
任何可能导致这种情况的想法?
更新2019年9月11日
在作业构建配置中,我在JDK选项中选择了(系统)。如果我选择JDK 8 update 221,则此构建作业成功运行,但是我想使用将从该节点中的环境变量获取的(系统)JDK,因此我可以切换到另一个从属节点而无需更改JDK选项。
但是,当我远程到该服务器并打开命令提示符时,转到该项目的工作区文件夹,说:C:\ jenkins_slave \ workspace \ project01 \,然后键入命令:mvn clean install,它会运行无需抱怨詹金斯(Jenkins)运行的jdk或jre。
答案 0 :(得分:1)
您可以根据自己的情况使用以下任何一种方法:
方法1 )
请按照以下步骤配置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
>从下拉列表中,选择Global Tool Configuration
部分中提供给JDK的名称
现在,您必须在Windows节点中提供JAVA_HOME路径。所以无论在哪里,只要在Home
文本框中提到该路径,如下所示:
方法2 )
转到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配置:
工作命令:
工作的输出:
方法3 )
在Windows节点的配置中,启用Environment variables
并添加具有 related 值
名称:java.home
值:C:\Program Files\Java\jdk1.8.0_221\jre
注意:它是java.home
(全部用小写字母显示,如下所示)
JAVA_HOME
需要指向JDK安装(maven需要tools.jar
),但是Maven实际上 使用JDK中的JRE来运行自身。
使用mvn -version
时,Maven使用Java的内部java.home
属性。此属性与JAVA_HOME
环境设置不同,因此可能会使您感到愚蠢。它实际上是一个动态属性,向您显示正在运行代码的JRE。