maven调用本地nodejs命令

相关背景:
在公司的一个项目中,前端使用的框架是vue.js,其中有需要使用npm run build进行前端打包。执行打包时,会默认将打包的前端静态资源文件(css/js/img等)输出到dist目录中。而spring boot只能访问src/main/resources/public下的静态资源文件,因此每次工程打包都得将dist目录下的资源文件手动拷贝到src/main/resources/public目录下,然后再执行mvn clean package命令进行打包,这样影响了开发效率。
公司项目使用maven技术进行项目工程组织。

问题思考:
在执行mvn clean package命令时,利用maven插件执行npm run build命令,一次性完成整个过程。

解决方式:
1、利用maven插件:exec-maven-plugin

详细的POM配置信息如下:



window

npm.cmd


true



linux

npm




org.apache.maven.plugins
maven-war-plugin
2.4

false
ROOT


org.springframework.boot
spring-boot-maven-plugin
1.5.1.RELEASE



repackage




org.codehaus.mojo
exec-maven-plugin


exec-npm-install
prepare-package

exec


\({npm}</executable> <arguments> <argument>install</argument> </arguments> <workingDirectory>\){basedir}/src/main/webapp


exec-npm-run-build
prepare-package

exec


\({npm}</executable> <arguments> <argument>run</argument> <argument>build</argument> </arguments> <workingDirectory>\){basedir}/src/main/webapp





执行方式:
windows环境 : mvn clean package -P window
Linux环境 :mvn clean package -P linux

posted @ 2017-05-11 21:46  keep_move  阅读(10432)  评论(5)    收藏  举报