尝试在Jenkins中建立一个分支。构建总是失败,通常在处理完一个文件之后,但有时在文件列表中的随机点上进行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连接和缩小添加了一个任务。很标准的东西。以下是配置的相关位:
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服务器上应用了一个修补程序,解决了路径长度问题。但是,我仍然得到了EBUSY问题。谷歌和其他论坛表明这些是Windows怪癖,不会很快修复。
这是正常的吗?我通常在Ruby上,Sprockets在这里自动完成所有这些工作。我对Grunt和Jenkins来说比较新,但这似乎是教科书Grunt-101的东西应该可行。我做错了什么?
答案 0 :(得分:-1)
您可以在Microsoft Word或其他随机非编程编辑器中打开其中一个文件。 Word锁定对文件的访问。完全退出MS Word并重新构建。解决了我的问题。希望它有所帮助!