{"action":"created","issue":{"url":"https://api.github.com/repos/jhipster/generator-jhipster/issues/3356","repository_url":"https://api.github.com/repos/jhipster/generator-jhipster","labels_url":"https://api.github.com/repos/jhipster/generator-jhipster/issues/3356/labels{/name}","comments_url":"https://api.github.com/repos/jhipster/generator-jhipster/issues/3356/comments","events_url":"https://api.github.com/repos/jhipster/generator-jhipster/issues/3356/events","html_url":"https://github.com/jhipster/generator-jhipster/issues/3356","id":146407835,"number":3356,"title":"[FEATURE] frontend-maven-plugin - A better alternative for yeoman-maven-plugin ?","user":{"login":"ddewaele","id":364310,"avatar_url":"https://avatars.githubusercontent.com/u/364310?v=3","gravatar_id":"","url":"https://api.github.com/users/ddewaele","html_url":"https://github.com/ddewaele","followers_url":"https://api.github.com/users/ddewaele/followers","following_url":"https://api.github.com/users/ddewaele/following{/other_user}","gists_url":"https://api.github.com/users/ddewaele/gists{/gist_id}","starred_url":"https://api.github.com/users/ddewaele/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddewaele/subscriptions","organizations_url":"https://api.github.com/users/ddewaele/orgs","repos_url":"https://api.github.com/users/ddewaele/repos","events_url":"https://api.github.com/users/ddewaele/events{/privacy}","received_events_url":"https://api.github.com/users/ddewaele/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":29,"created_at":"2016-04-06T19:18:52Z","updated_at":"2016-04-07T16:28:42Z","closed_at":null,"body":"##### **Overview of the issue**\r\n\r\nAt the moment, [yeoman-maven-plugin](https://github.com/trecloux/yeoman-maven-plugin) is used to handle the frontend packaging for the production profile.\r\n\r\nAlthough it works it has some shortcomings : \r\n\r\n- It depends on an existing installation of node/npm on the system\r\n- It is impossible to choose a specific version of node/npm\r\n- It is not really actively maintained.\r\n\r\n\r\nPerhaps there are better alternatives, like [frontend-maven-plugin](https://github.com/eirslett/frontend-maven-plugin) that seems to have more features / a larger community / more stars on github.\r\n\r\nIn my current environment, I have very little control over my Jenkins installation. \r\n\r\n- I cannot change the jenkins PATH and the Jenkins NodeJS plugin is kinda broken. (and doesn't play well with maven projects). \r\n- To make matters worse, on my Jenkins machine, in /usr/bin there is an old incompatible version of NodeJS (v0.10.x) that will always be used as default by jHipster and fail the build.\r\n\r\nThis means that at the moment, I cannot release jHipster apps with the production profile, with minified JS from Jenkins.\r\n\r\nI believe it would be better if jHipster had more control over the specific version of node/npm that is used to package the jHipster UI\r\n\r\n##### **Suggest a Fix** \r\n\r\nI was wondering if people were open to looking into frontend-maven-plugin as a worthy alternative for the yeoman-maven-plugin ?\r\n\r\nI also found the [CI documentation](http://jhipster.github.io/setting-up-ci-linux/) a bit confusing, as it mentioned both : \r\n\r\n- using the Jenkins NodeJS plugin to install NodeJS.\r\n- using a shell script to download / install NodeJS.\r\n\r\nHaving a self-contained maven plugin that doesn't depend on external dependencies (availability of node/npm or globally installed NodeJS modules on the system) will make jHipster more versatile. \r\n\r\nA similar plugin exists for Gradle."},"comment":{"url":"https://api.github.com/repos/jhipster/generator-jhipster/issues/comments/206981400","html_url":"https://github.com/jhipster/generator-jhipster/issues/3356#issuecomment-206981400","issue_url":"https://api.github.com/repos/jhipster/generator-jhipster/issues/3356","id":206981400,"user":{"login":"gmarziou","id":361007,"avatar_url":"https://avatars.githubusercontent.com/u/361007?v=3","gravatar_id":"","url":"https://api.github.com/users/gmarziou","html_url":"https://github.com/gmarziou","followers_url":"https://api.github.com/users/gmarziou/followers","following_url":"https://api.github.com/users/gmarziou/following{/other_user}","gists_url":"https://api.github.com/users/gmarziou/gists{/gist_id}","starred_url":"https://api.github.com/users/gmarziou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gmarziou/subscriptions","organizations_url":"https://api.github.com/users/gmarziou/orgs","repos_url":"https://api.github.com/users/gmarziou/repos","events_url":"https://api.github.com/users/gmarziou/events{/privacy}","received_events_url":"https://api.github.com/users/gmarziou/received_events","type":"User","site_admin":false},"created_at":"2016-04-07T16:28:42Z","updated_at":"2016-04-07T16:28:42Z","body":"Looks good but there is yet one thing I don't understand, I can see that it installs node and npm, runs gulp but when does it install bower and run `bower install`?"}}