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 コマンドを再実行し、デバッグ出力を取得して、exec-maven-plugin が実行中の実際のコマンドを出力するようにします。それは次のようなものです:
プロジェクトのルート/ターゲット/依存関係/ノード/ノード\ プロジェクトのルート/ターゲット/依存関係/requirejs/r.js\ -o src/main/webapp/app.build.json
コマンドラインから手動でコマンドを実行すると、コンソールに実際のコンパイル エラーが表示され、修正に進みます。
2>&1
引数としてリダイレクト ビットのような exec-maven-plugin を作成する方法をすぐに見つけることができなかったため、stderr を stdout にリダイレクトしても (Windows では) 役に立ちませんでした。これは stderr/stdout の問題であるというのは単なる大雑把な推測であるため、私はそのルートをあまり追求しませんでした。
何が起こっているのかについての指針、または私が実行できるさらなる診断手順についての提案はありますか? この問題には複数の可動部分があることを覚えておいてください: Maven、exec-maven-plugin、Node.js、r.js、そして 1 つの疲れた頭です。
PSプロジェクトのタイムラインでは、現在POMの完全なオーバーホールを行うことができないため、requirejs-maven-pluginを最後の手段として試してみることを検討しています。今の環境で何かできないか検討中です。