2015-06-11 32 views
2

我想为我的Maven构建的一部分NPM运行。我使用的exec-Maven的插件,这里是从pom.xml的传递工作目录到NPM在EXEC-Maven的插件

<plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>exec-npm-install</id> 
        <phase>generate-sources</phase> 

        <goals> 
        <goal>exec</goal> 
        </goals> 

        <configuration> 
        <executable>npm</executable> 
        <arguments> 
         <argument>build</argument> 
        </arguments> 
        <workingDirectory>${basedir}/src/main/webapp</workingDirectory> 
        </configuration> 

       </execution> 
      </executions> 
     </plugin> 

NPM未运行,如何以往当我运行mvn清洁套装或MVN产生来源我的插件部分。

在我的package.json我有以下脚本。

"scripts": { 
    "start": "npm run build && serve .", 
    "build": "npm run build-js && npm run build-css", 
    "watch": "npm run watch-js & npm run watch-css & serve .", 
    "watch-build": "npm run watch-js && npm run watch-css && npm run build-js && npm run build-css && serve .", 
    "test": "npm run lint -s && npm run build", 
    "build-css": "rework-npm index.css | cleancss -o build/build.css", 
    "build-js": "browserify --extension=.jsx --extension=.js src/app.jsx > build/build.js", 
    "watch-js": "watchify --extension=.jsx --extension=.js src/app.jsx -o build/build.js --debug --verbose", 
    "watch-css": "nodemon -e css --ignore build/build.css --exec 'rework-npm index.css -o build/build.css'", 
    "lint-eslint": "eslint .", 
    "lint-jscs": "jscs .", 
    "lint": "npm run lint-eslint && npm run lint-jscs" 
    } 

,因此我打电话构建。

早些时候,当我使用npm安装时,我确实看到了正在安装的npm软件包。

而且我如何指定NPM的工作目录?

我正在通过使用,这就是package.json所在的位置。

<workingDirectory>${basedir}/src/main/webapp</workingDirectory> 

感谢

+0

什么https://github.com/eirslett/frontend-maven-plugin或https://github.com/mulesoft/npm-maven-plugin? – khmarbaise

回答

4

您需要执行npm run build运行一个脚本NPM,但你正在执行npm build,这是一个新公共管理生命周期事件。

<execution> 
    <id>npm run build</id> 
    <phase>generate-sources</phase> 
    <goals> 
    <goal>exec</goal> 
    </goals> 
    <configuration> 
    <executable>npm</executable> 
    <arguments> 
     <argument>run</argument> 
     <argument>build</argument> 
    </arguments> 
    </configuration> 
</execution>