Maven failed to execute goal - cannot run program

2019-01-28 21:33发布

问题:

I am on a Windows 7 computer and I've been given code that I have to run "mvn install" on to build the app. When I do this, I get the following error:

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (npm-install) on project [project]: Command execution failed.: Cannot run program "npm" (in directory "C:\Users\path\to\a\folder"): CreateProcess error=2, The system cannot find the file specified

The app itself is split into several parts, one of which is an angular app that npm is being used for.

I've tried installing nodejs (which I'm not very familiar with) and included it in the PATH, but the same error happened anyway. Shouldn't maven take care of the need for installing it?

Any advice on how to resolve this is appreciated.

回答1:

There are two ways to correct this (the second method is preferable if you build the projects targeting linux and windows both. Moreover, also if the no. of pom files is also large):

  1. Change in pom file if using maven see (https://stackoverflow.com/a/40390500/4282901)

               <executions>
                <execution>
                  <id>npm install</id>
                  <phase>generate-sources</phase>
                  <goals>
                     <goal>exec</goal>
                  </goals>
                  <configuration>
                     <executable>npm.cmd</executable>
                     <arguments>
                        <argument>--loglevel</argument>
                        <argument>error</argument>
                        <argument>install</argument>
                     </arguments>
                  </configuration>
               </execution>
    
    1. In the directory where node is installed rename the batch file so that the existing npm.cmd file is picked. See screenshot below: