# generator-jvm

> Helps you quick and easy generate JVM-based (java, java ee, kotlin, scala) projects with gradle and maven build systems, docker and docker-compose for rapid development

Latest version **1.18.99** (published 2019-09-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install generator-jvm
pnpm add generator-jvm
yarn add generator-jvm
bun add generator-jvm
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.18.99 |
| Published | 2019-09-13 |
| First published | 2018-04-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 1.4 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 43 |
| Author | Maksim Kostromin |
| Maintainers | daggerok |
| Keywords | yo, jvm, mvn, sbt, java, akka, scala, maven, vertx, travis, github, gitlab, vert.x, gradle, fatjar, docker, jax-rs, java-ee, webflux, resteasy, bitbucket, thorntail, thymeleaf, scala_2.11, scala_2.12, spring-mvc, asciidoctor, spring-boot, spring-cloud, payara-micro, wildfly-swarm, spring-webflux, docker-compose, asciidoctor-pdf, yeoman-generator, asciidoctor-html, asciidoctor-html5, spring-cloud-function |

## Links

- npm: https://www.npmjs.com/package/generator-jvm
- Repository: https://github.com/daggerok/generator-jvm
- Issues: https://github.com/daggerok/generator-jvm/issues
- npm.io page: https://npm.io/package/generator-jvm

## Dependencies (3)

- [chalk](https://npm.io/package/chalk.md) 2.4.2
- [yosay](https://npm.io/package/yosay.md) 2.0.2
- [yeoman-generator](https://npm.io/package/yeoman-generator.md) 4.0.1

## Alternatives

- [@tsparticles/shape-image](https://npm.io/package/@tsparticles/shape-image.md) — 303.7K weekly downloads
- [@tsparticles/shape-line](https://npm.io/package/@tsparticles/shape-line.md) — 233.7K weekly downloads
- [stringify-attributes](https://npm.io/package/stringify-attributes.md) — 58.6K weekly downloads
- [mobile-drag-drop](https://npm.io/package/mobile-drag-drop.md) — 46.3K weekly downloads
- [@comunica/actor-rdf-parse-html](https://npm.io/package/@comunica/actor-rdf-parse-html.md) — 29.2K weekly downloads

## Recent versions

- 1.18.99 (latest) — 2019-09-13
- 1.6.6 (next) — 2018-06-04
- 1.18.98 — 2019-09-09
- 1.18.97 — 2019-09-09
- 1.18.96 — 2019-07-07
- 1.18.95 — 2019-07-05
- 1.18.94 — 2019-07-05
- 1.18.93 — 2019-05-07
- 1.18.92 — 2019-04-06
- 1.18.91 — 2019-03-14
- 1.18.90 — 2019-02-16
- 1.18.89 — 2019-02-16
- 1.18.88 — 2019-02-16
- 1.18.87 — 2019-02-02
- 1.18.86 — 2019-01-27
- … 192 more at https://npm.io/package/generator-jvm/versions

## README

# generator-jvm [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url]
> Generate JVM (java, kotlin, scala) project with gradle / maven build systems and docker / docker-compose for rapid development

## See also

I aslo have a lot of jvm starters [here](https://github.com/daggerok/main-starter#other-available-branches), and not sure that will move all of them inside this generator

## Installation

First, install [Yeoman](http://yeoman.io) and generator-jvm using [npm](https://www.npmjs.com/) (we assume you have pre-installed [node.js](https://nodejs.org/)).

```bash
npm install -g yo
npm install -g generator-jvm
```

## npm audit

It's not recommended, but if you really need, you can install npm packages without audit by using:

```bash
npm install --no-audit
```

## Usage

Then generate your new project using command line options (`name` and `type`):

```bash
yo jvm --name my-awesom-java-project --type java
yo jvm -n spring-boot-kotlin-project -t kotlin-spring-boot
cd my-awesom-java-project
```

Then generate your new project using prompt:

```bash
yo jvm
# enter projectDirectory or just press enter (default: app)
# chose projectType (default: java)
cd app
```

using gradle

```bash
idea build.gradle
bash gradlew
```

using maven

```bash
idea pom.xml
bash mvnw
```

docker-compose

```bash
# gradle
bash gradlew composeUp
# maven
bash mvnw docker-compose:up
```

## What's inside?

___java-ee (micro-profile) project___

 * java 8 based project
 * javaee 7.0 / 8.0 using thorntail (aka wildfly-swarm) micro-profile
 * support fatjar
 * support executable bash jar
 * support kotlin
 * support maven build system
 * support gradle build system (only swarm projects)
 * vavr (aka javaslang), lombok
 * support testing with junit 4 / 5
 * docker / docker-compose support

type options:

- `java-thorntail`
- `java-wildfly-swarm`
- `kotlin-thorntail`
- `kotlin-wildfly-swarm`

___java-payara-micro___

 * java 8 based project
 * Java / JavaEE 8
 * lombok (slf4j + logback logging)
 * support fat (uber) jar
 * support maven build system
 * support gradle build system
 * support testing with junit 5
 * docker / docker-compose support

type options:

- `java-payara-micro`

___akka-actor project___

 * java 8 based project
 * scala 2.12
 * akka-actor 2.5.14
 * lombok (slf4j + logback logging)
 * vavr (javaslang)
 * support fatjar
 * support sbt build system
 * support maven build system
 * support gradle build system
 * support application scripts when using gradle
 * support testing with junit 4 / 5
 * docker / docker-compose support

type options:

- `java-akka-actor`
- `scala-gradle-akka-actor`
- `scala-sbt-akka-actor`

___akka-persistence project___

 * java 8 based project
 * scala 2.12
 * akka-actor 2.5.14 / akka-persistence
 * support fatjar
 * support gradle build system
 * docker / docker-compose support

type options:

- `scala-gradle-akka-persistence`

___java-ee thymeleaf project___

 * Java EE 8 based web project
 * Thymeleaf
 * JAX-RX
 * support JBOSS EAP 7.1 (docker)
 * support maven build system
 * support gradle build system
 * docker / docker-compose support

type options:

- `java-ee-thymeleaf`

___vertx project___

 * java 8 based Vert.x web project
 * support fatjar
 * support kotlin 1.3.11
 * support maven build system
 * support gradle build system
 * docker / docker-compose support

type options:

- `java-vertx`
- `kotlin-vertx`

___spring cloud function web project___

 * java 8 based spring-cloud-function-web project
 * spring-boot 2 / spring framework 5
 * support fatjar
 * support executable bash jar
 * support kotlin 1.3.11
 * support maven build system
 * support gradle build system
 * docker / docker-compose support

type options:

- `java-spring-cloud-function-web`
- `kotlin-spring-cloud-function-web`

___spring-boot 2 / spring framework 5 project___

 * java 8 based project
 * spring-boot 2 / spring framework 5
 * support fatjar
 * support executable bash jar
 * support kotlin 1.3.11
 * support maven build system
 * support gradle build system
 * vavr (javaslang)
 * lombok (slf4j + logback logging)
 * support testing with junit 4 / 5
 * docker / docker-compose support

type options:

- `java-spring-boot`
- `kotlin-spring-boot`
- `java-spring-boot-2.0.x`
- `kotlin-spring-boot-2.0.x`

___spring-boot 1 / spring framework 4 project___

 * java 8 based project
 * spring-boot 1 / spring framework 4
 * support fatjar
 * support executable bash jar
 * support kotlin 1.2.71
 * support maven build system
 * support gradle build system
 * vavr (javaslang)
 * lombok (slf4j + logback logging)
 * support testing with junit 4 / 5
 * docker / docker-compose support

type options:

- `java-spring-boot-1.x`
- `kotlin-spring-boot-1.x`

___java-ee-faces project___

 * javaee 8.0 project
 * JSF using mojarrra 2.2.16 faces implementation
 * lombok (slf4j + logback logging)
 * support maven build system
 * support gradle build system
 * docker / docker-compose support (Glassfish 5.0 / JBOSS EAP 7.1)

___java-ee EAR multi project___

 * javaee 8.0 project
 * EAR with EJB + CDI configured
 * EAR without CDI at all, but could be easily added (`java-ee-cdi-multi-project`)
 * EJB3 (business services module: ejb-services)
 * EJB3 (JPA repositories module: ejb-data with embedded H2database for simplicity)
 * JAX-RS REST API
 * WEB/HTML5 static content
 * Servlet and JSP with EJB usage
 * lombok (slf4j + logback logging)
 * vavr (javaslang)
 * support maven build system
 * support gradle build system
 * docker / docker-compose support (JBOSS EAP 7.1)

type options:

- `java-ee-cdi-full-multi-project`
- `java-ee-ejb-full-multi-project`

___java-ee project___

 * java 8 based project
 * javaee 8.0
 * lombok (slf4j + logback logging)
 * vavr (javaslang)
 * support kotlin 1.3.11
 * support maven build system
 * support gradle build system
 * support testing with junit 4 / 5
 * docker / docker-compose support (JBOSS EAP 7)

type options:

- `java-ee`
- `kotlin-ee`

___parent multi project___

 * java 8 based parent multi project
 * support fatjar
 * support kotlin 1.3.11
 * support executable bash jar
 * support maven build system
 * support gradle build system
 * vavr (javaslang)
 * lombok (slf4j + logback logging)
 * support testing with junit 4 / 5
 * docker / docker-compose support

type options:

- `java-parent-multi-project`
- `kotlin-parent-multi-project`

___simple fat project___

 * java 8 based project
 * lombok (slf4j + logback logging)
 * vavr (javaslang)
 * support fatjar
 * support scala 2.12 / 2.11
 * support maven build system
 * support gradle build system
 * docker / docker-compose support
 * support application scripts when using gradle
 * support application executable scripts when using gradle
 * support testing using junit 4, scalactic, scalatest, specs2

type options:

- `java`
- `kotlin`
- `scala`
- `scala-2.11`
- `scala-sbt`

## Also inside all projects available

- FindBugs maven / gradle plugins functionality
  ```./gradlew check```
  ```./mvnw verify site```
- Ascii documentation (asciidoctor maven / gradle plugins functionality)
  ```./gradlew asciidoctor```
- Artifact deployment (local maven repositories)
  ```./gradlew publish``` 
  ```./mvnw deploy``` 

## Getting To Know Yeoman

 * Yeoman has a heart of gold.
 * Yeoman is a person with feelings and opinions, but is very easy to work with.
 * Yeoman can be too opinionated at times but is easily convinced not to be.
 * Feel free to [learn more about Yeoman](http://yeoman.io/).

## License

MIT © [Maksim Kostromin](https://github.com/daggerok)

[npm-image]: https://badge.fury.io/js/generator-jvm.svg
[npm-url]: https://npmjs.org/package/generator-jvm
[travis-image]: https://travis-ci.org/daggerok/generator-jvm.svg?branch=master
[travis-url]: https://travis-ci.org/daggerok/generator-jvm
[daviddm-image]: https://david-dm.org/daggerok/generator-jvm.svg?theme=shields.io
[daviddm-url]: https://david-dm.org/daggerok/generator-jvm
[coveralls-image]: https://coveralls.io/repos/daggerok/generator-jvm/badge.svg
[coveralls-url]: https://coveralls.io/r/daggerok/generator-jvm

---
_Source: https://npm.io/package/generator-jvm · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
