私はmavenとfrontend-maven-pluginを使用しています。このコードをpom.xmlに追加して、たとえばgruntを実行できることを理解しています。
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<!-- NB! Set <version> to the latest released version of frontend-maven-plugin, like in README.md -->
<version>@project.version@</version>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<nodeVersion>v5.3.0</nodeVersion>
<npmVersion>3.3.12</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<!-- Optional configuration which provides for running any npm command -->
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
<execution>
<id>grunt build</id>
<goals>
<goal>grunt</goal>
</goals>
<configuration>
<arguments>--no-color</arguments>
</configuration>
</execution>
</executions>
</plugin>
私は実際にサーバーにノードとnpmを実際にインストールしました:ノードは/ opt/app/trss/nodejsの下にインストールされ、npmは/ opt/app/trss/nodejs/npmの下にインストールされます。私のサーバー?ありがとう
プラグインは、ノードのローカルインストールを使用するように設計されています。グローバルにインストールされたバージョンを使用することは 以前に要求された ですが、開発者の立場は、ノードがあまりスペースを取らず、見つからない場合にのみダウンロードするということです。
ノードをローカルにインストールすると、ノードをグローバルにインストールしていない開発者や、異なるバージョンを使用して、mvn clean install
よりも複雑な作業を行わなくてもプロジェクトを構築できる開発者が可能になります。
exec plugin を使用して、グローバルにインストールされたバージョンのnpmを実行してから、うなり声を上げることができます。何かのようなもの:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.5.0</version>
<executions>
<execution>
<id>run-npm-install</id>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>npm</executable>
<arguments>
<argument>install</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>run-grunt</id>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>grunt</executable>
<arguments>
<argument>--no-color</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
これは古い質問ですが、maven-frontend-pluginを使用するのではなく、これを行うとEclipseが間違った動作をする可能性があることも関連しています。
<pluginManagement>
<plugins>
<plugin>
<groupId>org.Eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<versionRange>[1.6.0,)</versionRange>
<goals>
<goal>exec</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
最後に、以下で説明するように、ノードとnpmのインストールをスキップできるようになりました。
https://github.com/eirslett/frontend-maven-plugin/issues/768
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>...</phase>
<configuration>
<skip>true</skip>
<nodeVersion>...</nodeVersion>
<npmVersion>...</npmVersion>
</configuration>
</execution>