Spring Boot CLI Commands

The Spring Boot CLI is a powerful tool to create/manage your projects. By executing the command with the ‘–help’ parameter, you will see the list of available options:

./spring --help
usage: spring [--help] [--version]
       <command> [<args>]

Available commands are:

  run [options] <files> [--] [args]
    Run a spring groovy script

    Download a spring groovy script's dependencies to ./repository

  jar [options] <jar-name> <files>
    Create a self-contained executable jar file from a Spring Groovy script

  war [options] <war-name> <files>
    Create a self-contained executable war file from a Spring Groovy script

  install [options] <coordinates>
    Install dependencies to the lib/ext directory

  uninstall [options] <coordinates>
    Uninstall dependencies from the lib/ext directory

  init [options] [location]
    Initialize a new project using Spring Initializr (start.spring.io)

  encodepassword [options] <password to encode>
    Encode a password for use with Spring Security

    Start a nested shell

Let’s see a bit more in detail each command.

The run Command

The run command will allow you to run Java or Groovy Spring Boot applications. Here is a sample usage of it which starts an application named “myapp.groovy” overriding the default Web Server Port:

$ spring run myapp.groovy -- --server.port=8081

If you have several files, you can use the wildcard * to compile all of them. Just execute this command:

$ spring run *.groovy

The test Command

The test command runs a Spring Groovy script and Java tests. To run it, you execute:

$ spring test test.groovy

The grab Command

The grab command will download all the Spring Groovy scripts and Java dependencies to the ./repository
directory. Example:

$ spring grab MyApplication.java

The jar Command

The jar command will create a self- contained executable JAR file from a Groovy or Java script. Example:

$ spring jar myapp.jar app.groovy

The resulting app.jar is a fat JAR that can be executed with the following:

$ java -jar myapp.jar

The war Command

This is very similar to the previous command. The war command will create a self-contained executable
WAR file from a Groovy or Java script. Example:

$ spring war app.war app.groovy

The install Command

The install command is very similar to the grab command; the only difference is that you need to specify the library you want to install (in a coordinate format groupId:artifactId:version ; the same as the @Grab annotation). It will download it and the dependencies in a lib directory. Example:

$ spring install org.spockframework:spock-core:1.0-groovy-2.4

You will have in the lib directory the Spock library and its dependencies.

The uninstall Command

The uninstall command will uninstall the dependencies from the lib directory. You can test this command by executing the following command:

$ spring uninstall org.spockframework:spock-core:1.0-groovy-2.4

The init Command

The init command will help you initialize a new project by using the Spring Initializr ( http://start.spring.io/ ). Whether or not you are using an IDE, this command will help you get everything ready to start developing Spring Boot applications. Check out this tutorial to learn more about using Spring init to boostrap your projects: Using Spring boot CLI to bootstrap your projects