错误消息沿着exec-maven-plugin> Node.js> r.js的某处被吃掉

我们使用exec-maven-plugin在Node.js下运行RequireJS的优化器(r.js)(因为它比Rhino快很多):

<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2</version> <executions> <execution> <id>compile-js</id> <phase>prepare-package</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable>${node.executable}</executable> <arguments> <argument>${project.build.directory}/dependency/requirejs/r.js</argument> <argument>-o</argument> </arguments> </configuration> </execution> </executions> </plugin> 

问题是,当编译过程中出现问题时,r.js应该脱口而出的错误消息在Maven的控制台输出中不会显示。 我所要解决的问题是,我使用-X标志重新运行Maven命令以获取debugging输出,以便exec-maven-plugin输出正在执行的实际命令。 这是像这样的:

 project-root / target / dependency / node / node \
     project-root / target / dependency / requirejs / r.js \
     -o src / main / webapp / app.build.json

当我从命令行手动运行命令,然后在控制台中得到实际的编译错误,然后继续修复它们。

我已经试验了用2>&1将stderrredirect到stdout无效(在Windows上),因为我无法立即find像redirect位那样使exec-maven-plugin作为参数的方法。 我并没有把这条路线推得太远,因为这只是一个疯狂的猜测,这是一个stderr / stdout问题 – 可能是,但我只是在猜测。

任何关于可能发生的事情的指针,或者对于我可以采取的进一步诊断步骤的任何build议? 请记住在这个问题中有多个移动部分:Maven,exec-maven-plugin,Node.js,r.js和一个疲倦的头脑。

PS我正在考虑给予requirejs-maven-plugin作为最后的手段,因为项目时间表不允许我对POM进行彻底的检查。 我试图看看是否有什么我可以用当前的设置。

如何将调用包装到脚本中的node.jsr.js中,然后从maven-exec插件调用?

r.js看,它似乎使用console.log输出。 也许从一个shell脚本运行它可以让你捕捉输出,pipe道到一个文件,正则expression式的错误,等等

根据操作系统,这可能很容易做到。