使用jenkins 在使用编译vc++的一个项目,在执行批处理脚本的时候总是失败,

但是在控制台无论是管理员还是普通用户都能正常编译,jenkins每次都失败,看日志就是调用一个cmd命令直接失败,exit code是1 .

方案一:参考了csdn的一篇博客(下面有链接),才知道可能是权限的问题,用非system用户登录就可以正常编译。

方法很简单。就是登录 Jenkins service。

具体过程:

在"运行"中输入"services.msc"打开服务窗口,找到"Jenkins".

然后右键属性,在“登录”导航中选择“此用户”任何输入能够运行CMD.exe的用户。这里我用了管理员用户。

重启服务就能正常编译了。

方案二:用msbuild

---------------------------------

另外需要注意一点小问题

一、Execute windows batch command   下面写批处理命令 cmd /c "%WORKSPACE%\builder\build.cmd"  ,

这里需要注意需要加双引号 ,因为装的jenkins是32位版本 jenkins全路径有一个空格,对应的sln工程也需要注意这个。

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "C:\Program Files (x86)\Jenkins\workspace\xx\xx.sln" /Rebuild "Release|x86"  /Project xx /out log.txt

 二、另外因为新用jenkins ,他可以直接拉对应的分支

在源码管理里面的 Branches to build:

Branch Specifier (blank for 'any') : 默认是*/master  可以默认编译你的分支 比如:*/dev

三、某些环境变量设置需要重启jenkins服务

---------------------------------------------------------------------------

http://blog.csdn.net/hwhua1986/article/details/47778131

今天搭建Jenkins持续集成环境,编译环境是.net,在.net下没有比较好的代码覆盖率测试插件,所以用了开源的OpenCover,计算代码覆盖率,然后用ReportGenerator导出hmtl格式的测试报告。这里用到了批处理脚本,到这里问题出现了。

脚本写好之后在Windows系统下直接运行没有任何问题。但你要把它放在Jenkins里作为编译后执行的话就会报错,很诡异。我自已也怀疑是用户权限的问题。但用普通用户直接运行脚本也还是没问题。下午google了一下。按照http://stackoverflow.com/questions/10952280/execute-windows-batch-command-from-jenkins-fails-but-runs-fine-in-cmd-exe 提供的方式试了一下OK了。

方法很简单。就是登录 Jenkins service。

具体过程:

在"运行"中输入"services.msc"打开服务窗口,找到"Jenkins".

然后右键属性,在“登录”导航中选择“此用户”任何输入能够运行CMD.exe的用户。这里我用了管理员用户。

-------------------------------------

https://stackoverflow.com/questions/10952280/execute-windows-batch-command-from-jenkins-fails-but-runs-fine-in-cmd-exe

I too had a similar issue once. Try granting the Jenkins service "Logon as This account" right under services.msc and make sure the account you type there is the same as the one you use for running cmd.exe.

jenkins windows执行批处理脚本总是失败的更多相关文章

  1. Windows Bat 批处理脚本

    Windows Bat 批处理脚本 – Getting Started – Variables – Return Codes – stdin, stdout, stderr – If/Then Con ...

  2. Jenkins自动执行python脚本输出测试报告

    前言 在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作. 借助Jenkins,我们可以结合 Git/SVN 自动拉取 ...

  3. 转:windows BAT 批处理脚本教程

    转自:http://www.cnblogs.com/mq0036/p/3412171.html BAT 批处理脚本教程 第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文 ...

  4. EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行

    很多时候, 我们需要以管理员权限来运行批处理脚本, 比如操作 windows 服务. EasyNVR 中提供安装服务的批处理脚本, 运行这个bat文件, 自动将 EasyNVR 以 windows 服 ...

  5. jenkins 执行python脚本 断言失败就可以构建失败

    可以配合try: 那个语句去搭配

  6. 解决Jenkins中执行jmeter脚本后不能发报告(原报告被覆盖、新报告无法保存)的问题

    我没有找到根本原因,但是我用了个取巧的办法: 先将原来的报告移到别的文件夹,执行完jmeter脚本后,再把那些旧报告移回来(也可以不移回来,我这里是为了能从jenkins页面上看).

  7. windows 执行bat脚本

    bat脚本中运行另外一个bat脚本 call 命令 call1.bat内容如下 echo running call1 call2.bat内容如下 @echo off echo start call c ...

  8. Jenkins windows 执行批量cmd命令XCOPY 提示'XCOPY' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    由于Jenkins没有配置环境变量造成 打开Jenkins=>Manage Jenkins =>Configure System =>全局属性 新增全局变量 健: Path 值: % ...

  9. Jenkins怎么安装?Jenkins控制台输出乱码怎么处理?Jenkins执行selenium脚本时浏览器不显示怎么处理?

    今天我们来看一看Jenkins的安装. 首先我们看一下Jenkins是什么,能够干什么.Jenkins呢是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开 ...

随机推荐

  1. 【BZOJ4146】[AMPPZ2014]Divisors

    [BZOJ4146][AMPPZ2014]Divisors Description 给定一个序列a[1],a[2],...,a[n].求满足i!=j且a[i]|a[j]的二元组(i,j)的个数. In ...

  2. 『SharePoint 2010』Sharepoint 2010 Form 身份认证的实现(基于AD)

    一.进管理中心,创建一个应用程序,配置如下: 二.填端口号,和选择form身份认证,以及填写成员和角色,其他都默认就可以了 三.使用SharePoint 2010 Management Shell在里 ...

  3. 转载 hibernate一级缓存和二级缓存的区别

    文章来源:http://blog.csdn.net/defonds/article/details/2308972     hibernate一级缓存和二级缓存的区别 缓存是介于应用程序和物理数据源之 ...

  4. oracle的between用来判断时间区间

    SELECT * FROM warning_form wfwhere wf.start_time between trunc(sysdate,'mm') and sysdate; start_time ...

  5. LeetCode 笔记系列15 Set Matrix Zeroes [稍微有一点hack]

    题目:Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. Fol ...

  6. LeetCode 笔记系列12 Trapping Rain Water [复杂的代码是错误的代码]

    题目:Given n non-negative integers representing an elevation map where the width of each bar is 1, com ...

  7. 查看嵌入式设备的CPU频率

    对于有多个核心的CPU,查看CPU 频率的方法是: cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 上面的这个是查看核心0的cpu的 ...

  8. Storm-源码分析-Topology Submit-Worker

    1 mk-worker 和其他的daemon一样, 都是通过defserverfn macro来创建worker (defserverfn mk-worker [conf shared-mq-cont ...

  9. json中load和loads区别

    相同点 dump 和 dumps 都实现了序列化 load 和 loads 都实现反序列化 变量从内存中变成可存储或传输的过程称之为序列化序列化是将对象状态转化为可保存或可传输格式的过程. 变量内容从 ...

  10. DRF频率、分页、解析器、渲染器

    DRF的频率 频率限制是做什么的 开放平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用. 频率组件原理 DRF中的频率控制基本原理是基于访问次数和时间的,当然我们可以通过自己定 ...