zoukankan      html  css  js  c++  java
  • Linux环境的Jenkins构建NetCore项目出现的问题 dotnet: 未找到命令

    实验的机器是CentOS 7.9  。

    Jenkins里自动编译.netcore项目的步骤:

    1、Linux安装netcore 的sdk

    可以看这篇文章https://www.cnblogs.com/puzi0315/p/15534427.html

    2、在Linux里测试下效果:

    dotnet --info
    dotnet --version

    一切正常。

    3、在Jenkins里创建任务测试,“构建”部分的代码如下:

    
    echo '============dotnet --info信息================'
    dotnet --info
    dotnet --version

    则报错:信息如下:

    /tmp/jenkins11995557596560651774.sh:行9: dotnet: 未找到命令
    /tmp/jenkins11995557596560651774.sh:行10: dotnet: 未找到命令

     分析原因,

    (1)sh脚本不支持dotnet命令,我写了个.sh脚本执行发现是正常了。这个点排查。

    (2)JenKins调用的sh的版本所致。解决方案是在命令的最上部加一句话,指定使用bash 。(这种方案被证实也是不行的)

    #!/bin/bash -il

    完整的脚本如下:

    #!/bin/bash -il
    
    echo '============查看打包环境================'
    pwd
    ls
    echo $PATH
    whoami
    echo '============dotnet --info信息================'
    dotnet --info
    dotnet --version

    结果还是报错,

    bash: dotnet: 未找到命令
    bash: dotnet: 未找到命令

    这就比较纠结了,问题还没有解决。又找了好多天,终于发现了个解决方案。

    解决方案如下:

    4、将linux的环境变量配置到jenkins中。

    (1)、在linux中输入  echo $PATH

     (2)、找到jenkins的系统配置-->环境变量

     全局变量里设置PATH值即可。

    “构建”里的代码还是如下图,再次构建就成功了。脚本不需要第一句的那句话也可以的。

    其实我也不知道为啥就好了。难道是JenKins调用的sh所使用的路径,只用了其中一个路径所致?

  • 相关阅读:
    iOS 面试题 1
    ios 面试题 0
    得到程序包路径
    UISwitch 监听响应
    在[self addsubView:xxx]中,self.name 和 _name的区别
    /调整button的title的位置
    //设置导航条背景图片
    警告框
    @synthesize
    打开控制台选中路径的文件夹
  • 原文地址:https://www.cnblogs.com/puzi0315/p/15550312.html
Copyright © 2011-2022 走看看