【问题标题】:Jenkins + Grunt on Windows = constant EBUSY and ENOENT errorsWindows 上的 Jenkins + Grunt = 持续的 EBUSY 和 ENOENT 错误
【发布时间】:2015-06-23 05:07:27
【问题描述】:

试图在 Jenkins 中建立一个分支。构建总是失败,通常是在处理了一个文件之后,但有时在要最小/连接的文件列表中的随机点。

错误看起来像:

"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 的东西,应该可以正常工作。我做错了什么?

【问题讨论】:

  • FWIW,msbuild 进程喜欢闲逛。有时我必须手动运行taskkill /im msbuild.exe /f /t

标签: node.js jenkins gruntjs windows-server-2008-r2 yui-compressor


【解决方案1】:

您很有可能在 Microsoft Word 或其他随机的非编程编辑器中打开您的文件。 Word 会锁定对文件的访问权限。完全退出 MS Word 并重新构建。为我解决了这个问题。希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2014-08-30
    • 2015-10-02
    相关资源
    最近更新 更多