UNPKG

generator-jangular

Version:

Quickstart a Maven + CDI + TomEE + Jackson + AngularJS project

110 lines (90 loc) 4.5 kB
'use strict'; var util = require('util'); var path = require('path'); var yeoman = require('yeoman-generator'); var _s = require('underscore.string'); var MavenGenerator = module.exports = function MavenGenerator(args, options, config) { yeoman.generators.Base.apply(this, arguments); this.on('end', function () { this.installDependencies({ skipInstall: options['skip-install'] }); }); this.pkg = JSON.parse(this.readFileAsString(path.join(__dirname, '../package.json'))); }; util.inherits(MavenGenerator, yeoman.generators.Base); MavenGenerator.prototype.askFor = function askFor() { var cb = this.async(); // have Yeoman greet the user. console.log(this.yeoman); var prompts = [ { type: 'input', name: 'baseName', message: '(1/2) What is the base name of your application?', default: 'example' }, { type: 'input', name: 'packageName', message: '(2/2) What is your default package name?', default: 'com.mycompany.myapp' } ]; this.prompt(prompts, function (props) { this.baseName = props.baseName; this.packageName = props.packageName; this.version = '1.0-SNAPSHOT'; cb(); }.bind(this)); }; MavenGenerator.prototype.app = function app() { //this.mkdir('app'); //this.mkdir('app/templates'); var packageFolder = this.packageName.replace(/\./g, '/'); this.mkdir("src/main/java/" + packageFolder); this.mkdir("src/main/webapp/"); this.mkdir("src/main/web/"); this.mkdir("src/test/java/"); this.mkdir("src/test/web/"); // Java sources var srcFolder = 'src/main/java/' + packageFolder + '/'; this.mkdir(srcFolder); this.template('src/main/java/Application.java', srcFolder + '/Application.java'); this.template('src/main/java/rest/HelloRestService.java', srcFolder + 'rest/HelloRestService.java'); this.template('src/main/java/dao/api/GenericDao.java', srcFolder + 'dao/api/GenericDao.java'); this.template('src/main/java/dao/api/UserDao.java', srcFolder + 'dao/api/UserDao.java'); this.template('src/main/java/dao/impl/GenericJPADao.java', srcFolder + 'dao/impl/GenericJPADao.java'); this.template('src/main/java/dao/impl/UserJPADao.java', srcFolder + 'dao/impl/UserJPADao.java'); this.template('src/main/java/entity/User.java', srcFolder + 'entity/User.java'); this.template('src/main/java/rest/UserRestService.java', srcFolder + 'rest/UserRestService.java'); this.template('src/main/resources/META-INF/persistence.xml', 'src/main/resources/META-INF/persistence.xml'); // Webapp folder this.copy('src/main/webapp/WEB-INF/web.xml', 'src/main/webapp/WEB-INF/web.xml'); this.copy('src/main/webapp/WEB-INF/openejb-jar.xml', 'src/main/webapp/WEB-INF/openejb-jar.xml'); this.copy('src/main/webapp/WEB-INF/beans.xml', 'src/main/webapp/WEB-INF/beans.xml'); this.copy('src/main/webapp/rest.html', 'src/main/webapp/rest.html'); this.copy('src/main/webapp/wadl/wadl.xsl', 'src/main/webapp/wadl/wadl.xsl'); // Web folder this.template('src/main/web/_index.html', 'src/main/web/index.html'); this.copy('src/main/web/views/main.html', 'src/main/web/views/main.html'); this.template('src/main/web/scripts/_app.js', 'src/main/web/scripts/app.js'); this.template('src/main/web/scripts/controllers/_main.js', 'src/main/web/scripts/controllers/main.js'); this.template('src/main/web/scripts/controllers/_application-ctrl.js', 'src/main/web/scripts/controllers/application-ctrl.js'); this.copy('src/main/web/styles/main.css', 'src/main/web/styles/main.css'); this.copy('src/main/web/favicon.ico', 'src/main/web/favicon.ico'); this.copy('src/main/web/robots.txt', 'src/main/web/robots.txt'); // Web test folder this.template('src/test/web/spec/controllers/_main.js', 'src/test/web/spec/controllers/main.js'); // Root folder this.copy('bowerrc', '.bowerrc'); this.copy('jshintrc', '.jshintrc'); this.template('gitignore', '.gitignore'); this.copy('Gruntfile.js', 'Gruntfile.js'); this.copy('karma.conf.js', 'karma.conf.js'); this.template('_pom.xml', 'pom.xml'); this.template('_package.json', 'package.json'); this.template('_bower.json', 'bower.json'); }; MavenGenerator.prototype.projectfiles = function projectfiles() { this.copy('editorconfig', '.editorconfig'); this.copy('jshintrc', '.jshintrc'); };