Getting Started

Welcome to the getting started guide, you will find here a step by step guide using a Maven archetype. Optionally, you might want to try the one of the starter projects:

  • Starter projects
  • Gradle starter
  • Kotlin starter
  • Kotlin gradle starter


  • Install JDK 8+
  • Install Maven 3+


Just paste this into a terminal (make sure Java 8 and Maven 3.x are installed):

mvn archetype:generate -B -DgroupId=com.mycompany -DartifactId=my-app -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=jooby-archetype -DarchetypeGroupId=org.jooby -DarchetypeVersion=1.2.3

You might want to edit/change:

  • DgroupId: A Java package’s name
  • DartifactId: A project’s name in lower case and without spaces
  • Dversion: A project’s version, like 1.0-SNAPSHOT or 1.0.0-SNAPSHOT

Let’s try it!:

mvn archetype:generate -B -DgroupId=com.mycompany -DartifactId=my-app -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=jooby-archetype -DarchetypeGroupId=org.jooby -DarchetypeVersion=1.2.3
cd my-app
mvn jooby:run

You should see something similar to this at the end of the output:

INFO [2015-03-19 21:34:00,365] Hotswap available on: [my-app/public, my-app/conf, my-app/target/classes]
INFO [2015-03-19 21:34:00,368] includes: [**/*.class,**/*.conf,**/*.properties]
INFO [2015-03-19 21:34:00,369] excludes: []
INFO [2015-03-19 21:34:00,937] [dev@netty]: App server started in 502ms

GET / [*/*] [*/*] (anonymous)

listening on:

Jooby! is up and running!


exploring the newly created project
A new directory was created: my-app. Let’s see what it looks like:

The public folder contains static content like *.html, *.js, *.css, …, *.png files.
The conf folder contains *.conf.
The src/main/java folder contains *.java files (of course).
The src/test/java folder contains unit and integration tests.

NOTE: The public and conf folders are part of the classpath.

import org.jooby.Jooby;
public class App extends Jooby { // 1
// 2
get("/", () -> "Hello World!");
public static void main(final String[] args) {
run(App::new, args); // 3. start the application.

Steps involved are:

1) extend Jooby
2) define some routes
3) call the run method

Open a console and type:

mvn jooby:run

The maven plugin will compile the code (if necessary) and start the application.

Of course, you can generate the IDE metadata from Maven or import as a Maven project in your favorite IDE. Afterwards, all you have to do is run the: class. After all, this is a plain Java application with a main method.

where to go now?

  • read the documentation
  • check out one of the starter projects