ジェネレータ generator-jhipster を紹介します。このエントリーは「YEOMAN Advent Calendar 2014」12月13日の記事です。
YEOMAN Advent Calendar 2014 - Adventar
MEANスタックとして MongoDB / Express / AngularJS / NodeJS が話題となり generator-angular-fullstack の使い勝手とかがテーマとしてあげられることも多くなったと思います。
組み合わせはそれだけではありません。JHipster というのがあります。もしかすると現状のエンタープライズでSPA開発するなら一番条件が良いのかもしれないです。つまり「JAM2エンタープライズ・フルスタック」です(私が勝手に名前を付けました)。これは Java (Spring) / AngularJS / Maven / MongoDB(or MySQL / PostgreSQL) から構成されています。JHipster とは Java Hipster のことで「Java通」とでもいうことでしょうか。
インストールから実行まで
インストール
$ npm install -g generator-jhipster $ mkdir jhipster && cd $_ $ yo jhipster
オプションが多いです。
$ yo jhipster _ _ ___ __ _____ ____ ___ __ _____ __ __ _ | |_| | | | |_) ( (` | | | |_ | |_) ( (` | | / /\ / /` | |_/ |_| | |_| |_| _)_) |_| |_|__ |_| \ _)_) |_| /_/--\ \_\_, |_| \ ____ ___ ___ | |_ / / \ | |_) |_| \_\_/ |_| \ _ __ _ __ ___ ____ _ __ | | / /\ \ \ / / /\ | | \ | |_ \ \ / ( (` \_|_| /_/--\ \_\/ /_/--\ |_|_/ |_|__ \_\/ _)_) Welcome to the JHipster Generator ? (1/13) What is the base name of your application? jhipster ? (2/13) What is your default Java package name? com.mycompany.myapp ? (3/13) Do you want to use Java 8? (Use arrow keys) ❯ Yes (use Java 8) No (use Java 7) ? (4/13) Which *type* of authentication would you like to use? (Use arrow keys) ❯ Cookie-Based Authentication (Session) Token-Based Authentication (Oauth2) ? (5/13) Which *type* of database would you like to use? (Use arrow keys) SQL (H2, MySQL, PostgreSQL) ❯ NoSQL (MongoDB) ? (6/13) Which *production* database would you like to use? MongoDB ? (7/13) Which *development* database would you like to use? MongoDB ? (8/13) Do you want to use Hibernate 2nd level cache? No (this not possible with the NoSQL option) ? (9/13) Do you want to use clustered HTTP sessions? No ? (10/13) Do you want to use WebSockets? No ? (11/13) Would you like to use Maven or Gradle for building the backend? (Use arrow keys) ❯ Maven (recommended) Gradle ? (12/13) Would you like to use Grunt or Gulp.js for building the frontend? (Use arrow keys) ❯ Grunt (recommended) Gulp.js ? (13/13) Would you like to use the Compass CSS Authoring Framework? (y/N)
実行
gulp でも grunt でも良いのですが今回は grunt で設定してますので:
$ grunt server
最後に
当たり前ですが pom.xml もしっかりあり、Javaのソース・コードもきれいなコードが書かれています。フロントエンジニアがここからJavaを学ぶのもひとつの手段としてはいいかもしれません。