How to deploy a node.js app with maven?

前端 未结 4 675
死守一世寂寞
死守一世寂寞 2020-12-04 08:01

Most of our team consists of java developers and therefore the whole build / deployment / dependency management system is built on top of maven. We use CI so every build pro

4条回答
  •  暖寄归人
    2020-12-04 08:26

    I made npm process work for my AngularJS 2 + Spring Boot application by exec-maven-plugin. I don't use bower and grunt, but think you can make it work by exec-maven-plugin too, after look at the antrun example above from Pear.

    Below is my pom.xml example for exec-maven-plugin. My app has package.json and all the AngularJS .ts files are under src/main/resources, so run npm from the path. I run npm install for dependencies and npm run tsc for .ts conversion to .js

    pom.xml

            
                org.codehaus.mojo
                exec-maven-plugin
                
                    
                        exec-npm-install
                        generate-sources
                        
                            ${project.basedir}/src/main/resources
                            npm
                            
                                install
                            
                        
                        
                            exec
                        
                    
                    
                        exec-npm-run-tsc
                        generate-sources
                        
                            ${project.basedir}/src/main/resources
                            npm
                            
                                run
                                tsc
                            
                        
                        
                            exec
                        
                    
                
            
    

    One little hack on this is running maven build on eclipse with Windows or Mac. It perfectly fine on eclipse with linux or even also fine on Windows command window though. When run build on eclipse with Windows, it fail to understand npm and complain about not find the file. Weird thing is npm is working fine on Windows command window. So solving the hack I create npm.bat file under system path. In my case nodejs and npm are installed under C:\Program File\nodejs. After putting this batch file. everything works fine.

    npm.bat

    @echo off
    set arg1=%1
    set arg2=%2
    C:\Progra~1\nodejs\npm.cmd %arg1% %arg2%
    

    For Mac, I got same issue on eclipse. The thing is nodejs and npm are installed under /usr/local/bin. So to solve the issue, I make symbolic link /usr/local/bin/node and /usr/local/bin/npm to under /user/bin. However /usr/bin is protected in security policy, I done that after booting from recovery disk

提交回复
热议问题