Sat*_*ish 11 java bash jenkins
我正在使用Jenkins来部署构建.
我们需要将.war中的文件提取到某个目录中.我们有一个.xml文件,其中包含从.war文件中提取文件并启动服务器的命令.
正在正确创建构建,但.war提取没有发生,目标文件夹被留空.Jenkins控制台显示以下输出:
[sshexec] bash: jar: command not found
Run Code Online (Sandbox Code Playgroud)
从其他答案中读到,我已经PATH在.bashrc或.profile中正确设置了但我仍然面临同样的问题.
小智 21
按如下方式安装Java开发:
yum install java-devel
Run Code Online (Sandbox Code Playgroud)
具体来说,JAVAbin 目录不在您的PATH变量中。将其添加到PATH变量中。为了搜索可执行文件,操作系统需要有一个要查找的目录列表。tool in the因此,添加包含“jar PATH”环境变量的目录
注意:对于 Windows,路径分隔符为 ( ;),对于类 Unix 操作系统,路径分隔符为 ( :)
“[sshexec]”告诉我您正在使用一些 Jenkins 插件在远程主机上执行命令。
这通常意味着 Jenkins 执行此操作(或通过本机实现 SSH 协议执行等效操作):
ssh user@remotehost 'jar arg1 arg2...'
Run Code Online (Sandbox Code Playgroud)
这里发生的是远程主机上的 sshd 守护进程将执行用户的默认 shell 并要求 shell 执行命令行。shell 通常不作为“登录 shell”执行,这意味着 shell 将跳过用户交互登录时登录 shell 通常执行的初始化步骤。
您可以研究一下,看看使用选项执行的 shell 和不使用选项执行的man (name of your shell)shell 之间到底有什么区别。-l对于 bash 来说,它本质上意味着.profile并且.bashrc不会被执行,因此您可能在那里进行的任何 PATH 修改都不会发生。
jar我认为最好的选择是在要执行命令时提供命令的完整路径。
| 归档时间: |
|
| 查看次数: |
73887 次 |
| 最近记录: |