3

我正在使用 exec-maven-plugin 从 maven 运行“npm install”。它失败并出现这样的错误:

module.js:340
throw err;
      ^
Error: Cannot find module 'D:\projects\git\code\node_modules\npm\bin\npm-cli.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3

显然项目路径下没有npm-cli,它在安装nodejs的全局路径中。

所以整个构建以状态失败

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (npm) on project myproject: Command execution failed. Process exited with an error: 8 (Exit value: 8) -> [Help 1]

另一个有趣的事情是控制台下的“npm install”运行得非常好。只有当我从 Maven 运行它时才会出现问题。

任何想法将不胜感激!

4

2 回答 2

4

令人惊讶的是,java 版本如何影响 maven 的行为。

问题在于使用 java1.7_25,java 当它尝试从 maven 运行 exec 任务时,它破坏了 ~dp0 路径(正在运行的任务的目标路径)。

我简单地更新到 java1.7_40,一切都很顺利。

于 2013-10-11T12:39:07.360 回答
1

另一个解决方法是,如果其他人像我一样被困在较旧的 JDK 上,请运行

cmd /c npm install

来自 exec-maven-plugin。

于 2013-11-06T10:11:19.447 回答