在Windows上Jenkins + Grunt =常数EBUSY和ENOENT错误

试图在jenkinsbuild立一个分支。 构build总是失败,通常在获得一个文件处理后,但有时在文件列表中的随机点min / concat。

错误如下所示:

"ENOENT, no such file or directory 'C:\Program Files (x86)\Jenkins\jobs\grunt-minify-concat Build\workspace\1419346881831" 

要么

 "EBUSY, resource busy or locked 'C:\Program Files (x86)\Jenkins\jobs\grunt-minify-concat Build\workspace\1419370631016'" 

grunt-minify-concat是我们为Grunt添加了几行的项目的一个分支,为CSS / JS连接和缩小添加了一个任务。 非常标准的东西。 这里是configuration的相关位:

Gruntfile.js

 cssmin: { dist: { expand: true, cwd: 'MySite.Web/css/', src: ['*.css', '!*.min.css'], dest: 'MySite.Web/css/', ext: '.min.css' } }, min: { dist : { expand: true, cwd: 'MySite.Web/', src : [ 'js/*.js', 'scripts/*.js', '!js/*.min.js', '!scripts/*.min.js', '!js/jquery*.js', '!scripts/jquery*.js' ], dest : 'MySite.Web/js/', ext: '.min.js' } } grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-exec'); grunt.loadNpmTasks('grunt-sass'); grunt.loadNpmTasks('grunt-yui-compressor'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-msbuild'); grunt.registerTask('build', ['sass', 'cssmin', 'min' , 'msbuild:sln', 'copy:libraryDll']); grunt.registerTask('buildserver', ['version', 'build', 'tag', 'push', 'output']); grunt.registerTask('default', ['build']); 

packages.json

 "devDependencies": { "node-sass": "~0.8.1", "grunt": "~0.4.1", "grunt-contrib-watch": "~0.5.3", "grunt-sass": "~0.10.0", "grunt-yui-compressor": "0.1.1", "grunt-contrib-concat": "0.1.3", "grunt-exec": "~0.4.3", "grunt-msbuild": "~0.1.9", "grunt-contrib-copy": "~0.5.0" }, 

我已经将修补程序应用于承载Jenkins的Windows 2008R2服务器,解决了path长度问题。 不过,我仍然遇到EBUSY问题。 谷歌和其他论坛build议,这些是Windows的怪癖,将不会很快修复。

这是正常的吗? 我通常在Ruby上Sprockets自动完成所有这些。 我对Grunt和Jenkins来说是比较新的,但是这似乎是教科书Grunt-101,应该可以工作。 我究竟做错了什么?

有一个很好的机会,你有一个文件在Microsoft Word或另一个随机的非编程编辑器中打开。 Wordlocking对文件的访问。 完全退出MS Word并重新构build。 解决了我的问题。 希望能帮助到你!