web-dev-qa-db-ja.com

フロントエンドmavenプラグインはノードを使用できますか、npmはすでにインストールされていますか?

私は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の下にインストールされます。私のサーバー?ありがとう

9
zancudo

プラグインは、ノードのローカルインストールを使用するように設計されています。グローバルにインストールされたバージョンを使用することは 以前に要求された ですが、開発者の立場は、ノードがあまりスペースを取らず、見つからない場合にのみダウンロードするということです。

ノードをローカルにインストールすると、ノードをグローバルにインストールしていない開発者や、異なるバージョンを使用して、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>
16
Matt Champion

これは古い質問ですが、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>
0
danizen

最後に、以下で説明するように、ノードと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>
0
danizen