2

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

  1. 签出项目
  2. npm install

我通过使用grunt-shell插件并在 jsdoc 任务之前运行这样的任务来在 Linux 上工作:

// 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 中是否有更好的方法不需要这些特定于平台的命令?

或者

B)如果没有,任何人都有一个 Windows 命令可以执行与上述 Linux 版本等效的操作吗?

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

4

2 回答 2

1

自 grunt-jsdoc 0.3.3 版以来,JAVA_HOME env var 检查成为一个简单的警告

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

于 2013-05-29T08:00:41.723 回答
0

在 Windows 上,我使用 cygwin shell(git-bash 版本)在设置 JAVA_HOME 的地方运行 Grunt...

但它应该可以从 windows cmd 工作,我刚刚尝试过:

测试.js

console.log(process.env.JAVA_HOME);

命令文件

set JAVA_HOME=D:\path
node test.js

显示路径

于 2013-05-24T07:25:05.497 回答