https://github.com/danielpetisme/vertx-project-generator
The backend generator for http://start.vertx.io
https://github.com/danielpetisme/vertx-project-generator
generator vertx
Last synced: 11 months ago
JSON representation
The backend generator for http://start.vertx.io
- Host: GitHub
- URL: https://github.com/danielpetisme/vertx-project-generator
- Owner: danielpetisme
- License: apache-2.0
- Created: 2018-08-18T15:34:05.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-03T19:43:11.000Z (about 7 years ago)
- Last Synced: 2025-04-11T00:14:25.017Z (11 months ago)
- Topics: generator, vertx
- Language: Kotlin
- Size: 127 KB
- Stars: 3
- Watchers: 1
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
= Vertx Project Generator
image:https://travis-ci.org/danielpetisme/vertx-project-generator.svg?branch=master["Build Status", link="https://travis-ci.org/danielpetisme/vertx-project-generator"]
image:https://img.shields.io/github/license/danielpetisme/vertx-project-generator.svg[GitHub]
Welcome! This Gradle project aims to generate Vert.x Projects. Its main (only) purpose is to be the backend of http://start.vertx.io
== Quickstart
```
./gradlew generateVertxProject \
-Ptype=core \
-PgroupId=com.acme \
-PartifactId=sample \
-PbuildTool=maven \
-Planguage=java \
-PvertxVersion=3.5.3 \
-PvertxDependencies=vertx-web,vertx-config \
-ParchiveFormat=zip
```
== Project Properties
|===
|Name |Description | Default Value
|`type`
| The type of project to generate
|`"core"`
|`groupId`
|The project groupId
|`"io.vertx"`
|`artifactId`
|The project artifactId
|`"starter"`
|`buildTool`
|The tool to use to build the project (maven or gradle)
|`"maven"`
|`language`
| The language to use in the project (java or kotlin)
|`"java"`
|`vertxVersion`
| The version of vertx to use
|`"3.5.3"`
|`vertxDependencies`
|A coma separated list of vertx artifactId
|`""`
|`archiveFormat`
|The final archive format (zip, tar, tar.gz, tar.bz)
|`"zip"`
|===
Note: The default values are listed in `generator/build.gradle.kts`
== Tasks Sequence
* `generateVertxProject`: the default tasks acts as Gradle entryPoint.
** DependsOn: `assembleVertxProject`, `projectFiles`, `buildToolFiles` and `configFiles`
* `assembleVertxProject`: Archive the files generated on based on the `archiveFormat` property.
** DependsOn: `zip`, `tar`
* `projectFiles`: Generates the project source files
** DependsOn: `mainSources`, `mainResources`, `testSources`, `testResources`
* `buildToolFiles`: Generates the Maven/Gradle Wrapper and project files
** DependsOn: `maven`, `gradle`
* `configFiles`: Generates the project configuration files (like .gitignore, .editorconfig, etc.)
** DependsOn: `dotFiles`
== How to add a project type
To add a new project type named `my-type`:
* Create a `generator/projects/my-type` folder
* You can use plain files (they will be copied) or https://freemarker.apache.org/[Freemarker] templates.
* The project must provide a Java and Kotlin flavor
* The project must use the default `io.vertx.starter` package root name
* The project must pass the `test` defined in the `test` project
* Run `./gradlew travis` pour update the project configuration matrix