设置JAVA_HOME的Grunt任务

时间:2013-05-23 20:07:12

标签: java javascript gruntjs jsdoc java-home

我正在使用grunt-jsdoc来管理jsdoc命令的执行,这取决于Java并且需要设置JAVA_HOME环境变量。假设他们已经有了node.js和Java,我试图将本地开发人员设置(在Linux或Windows上)限制为:

  1. 结帐项目
  2. 运行npm install
  3. 我使用grunt-shell插件在Linux上工作,并在jsdoc任务之前运行这样的任务:

    // left out the part where I don't execute this task if JAVA_HOME already set
    shell: {
      getjavahome_linux: {
        command: 'readlink -f /usr/bin/java | sed "s:bin/java::"',
        options: {
          callback: function(err, stdout, stderr, cb) { 
            process.env.JAVA_HOME = stdout; 
            cb(); 
          }
        }
      }
    }
    

    但我无法为Windows找到类似的命令,更不用说其他平台了。我的问题:

    A)在Grunt中是否有更好的方法不需要这些特定于平台的命令?

    OR

    B)如果没有,任何人都有一个Windows命令,它将完全相当于上面的Linux版本?

    注意:实际在shell命令中设置JAVA_HOME不适用于grunt-jsdoc,但获取输出并设置process.env.JAVA_HOME效果很好。

2 个答案:

答案 0 :(得分:1)

自grunt-jsdoc版本0.3.3开始,JAVA_HOME env var check成为一个简单的警告

从版本0.5.0开始,它不再需要Java版本的jdsoc了。它完全在node.js上运行

答案 1 :(得分:0)

在Windows上,我使用cygwin shell(git-bash版本)运行Grunt,其中设置了JAVA_HOME ...

但它应该可以从windows cmd开始工作,我已经试过了:

test.js

console.log(process.env.JAVA_HOME);

cmd.exe的

set JAVA_HOME=D:\path
node test.js

显示路径