Set up a basic webapp using modern tools.
Tech stack: Grunt, Bower, Angular
Generate skeleton with Yeoman.
- Install node.js
- Setup Yeoman
Not sure if it is necessary to install grunt-cli bower.
- Install Ruby
- Install compass
- Create git project
- Generate basic project structure for Angular app
When yeoman/grunt/karma fails during release:perform
- Release: build a binary archive and deploy it to a Maven artifact repository (e.g. Nexus).
- Deploy to production: download artifact, unpack and move to correct location, reload web server (e.g. Apache, NginX or Jetty)
- Deploy files to an existing web server (typically copy files to a folder served by Apache).
- Run node and/or grunt on the production server.
- Self-contained deployment (for example embedded Jetty in a zip or executable jar file)
Many considers option 3 the only sane solution, so we will describe how to set this up.
Note that backend services must set up CORS to circumvent the same origin policy.
The yeoman-maven-plugin is used to call grunt from maven.
Standard maven plugins can the be used for the rest of the build process.
Frontend developers can work only with grunt and don't even need to have Maven installed.
Backend developers need to have a some extra tools installed (node, grunt, bower++), but can call regular Maven commands to build, deploy and release as usual.
- Configuration is handled by overriding variables in a config_override.js file which is put in a config_override folder by the deployscript. index.html typically contains
with contents something like
- Integration grunt with Maven