Installation

The installation documentation will explain all the different possibilities to install Sakura Boot to build an application.

Prerequisites

See Requirements for prerequisites.

Maven

Maven is recommended for developers who never use both Maven and Gradle.

Predefined dependencies

To install with predefined dependencies for a production-ready application, add one starter to the project dependencies:

This includes the basic functionalities of sakura boot, the necessary spring boot starter, and a runtime postgresql.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-predefined-basic</artifactId>
    <version>0.1.1</version>
</dependency>

This includes all the modules of sakura boot, the necessary spring boot starter, mapstruct, ehcache3 as cache provider, and a runtime postgresql.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-predefined-all-module</artifactId>
    <version>0.1.1</version>
</dependency>

Custom dependencies

To install with custom dependencies, add one starter to the project dependencies:

This includes only the basic functionalities of sakura boot.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-basic</artifactId>
    <version>0.1.1</version>
</dependency>

This includes all the modules of sakura boot.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-all-module</artifactId>
    <version>0.1.1</version>
</dependency>

Test dependencies

The test dependencies are available for unit tests, integration tests, and functional tests.
Integration and functional tests are available both with predefined starter and custom starter. There is no predefined starter for unit test.

Predefined dependencies

To install with predefined dependencies for a production-ready application, add one starter to the project dependencies:

Functional tests

This includes the basic functionalities of sakura boot, the necessary spring boot starter, and a runtime postgresql test container.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-predefined-basic-functional-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>

This includes all the modules of sakura boot, the necessary spring boot starter, mapstruct, and a runtime postgresql test container.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-predefined-all-module-functional-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>
Integration tests

This includes the basic functionalities of sakura boot, the necessary spring boot starter, and a runtime h2 in-memory database.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-predefined-basic-integration-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>

This includes all the modules of sakura boot, the necessary spring boot starter, mapstruct, and a runtime h2 in-memory database.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-predefined-all-module-integration-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>

Custom dependencies

To install with custom dependencies, add one starter to the project dependencies:

Functional tests

This includes only the basic functionalities of sakura boot.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-basic-functional-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>

This includes all the modules of sakura boot.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-all-module-functional-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>
Integration tests

This includes only the basic functionalities of sakura boot.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-basic-integration-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>

This includes all the modules of sakura boot.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-all-module-integration-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>
Unit tests

This includes only the basic functionalities of sakura boot.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-basic-unit-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>

This includes all the modules of sakura boot.

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-starter-all-module-unit-test</artifactId>
    <version>0.1.1</version>
    <scope>test</scope>
</dependency>

Customisation

For more fine-grained control over dependencies, import directly from each module and don’t use starters:

This includes the basic module with the core and log module of sakura boot and only necessary dependencies (e.g., spring-core, jakarta-persistence-api, etc).

<dependency>
    <groupId>org.sansenshimizu.sakuraboot</groupId>
    <artifactId>sakura-boot-basic</artifactId>
    <version>0.1.1</version>
</dependency>

The same can be applied with all the other modules of sakura boot.
The different artifactId are the following:

  • sakura-boot-basic

  • sakura-boot-log

  • sakura-boot-cache

  • sakura-boot-mapper

  • sakura-boot-specification

  • sakura-boot-hypermedia

  • sakura-boot-openapi

And for the test modules, the different artifactId are the following:

  • sakura-boot-basic-test

  • sakura-boot-cache-test

  • sakura-boot-mapper-test

  • sakura-boot-specification-test

  • sakura-boot-hypermedia-test

  • sakura-boot-integration-test

  • sakura-boot-functional-test

Gradle

Predefined dependencies

To install with predefined dependencies for a production-ready application, add one starter to the project dependencies:

This includes the basic functionalities of sakura boot, the necessary spring boot starter, and a runtime postgresql.

implementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-predefined-basic:0.1.1")

This includes all the modules of sakura boot, the necessary spring boot starter, mapstruct, ehcache3 as cache provider, and a runtime postgresql.

implementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-predefined-all-module:0.1.1")

Custom dependencies

To install with custom dependencies, add one starter to the project dependencies:

This includes only the basic functionalities of sakura boot.

implementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-basic:0.1.1")

This includes all the modules of sakura boot.

implementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-all-module:0.1.1")

Test dependencies

The test dependencies are available for unit tests, integration tests, and functional tests.
Integration and functional tests are available both with predefined starter and custom starter. There is no predefined starter for unit test.

Predefined dependencies

To install with predefined dependencies for a production-ready application, add one starter to the project dependencies:

Functional tests

This includes the basic functionalities of sakura boot, the necessary spring boot starter, and a runtime postgresql test container.

functionalTestImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-predefined-basic-functional-test:0.1.1")

This includes all the modules of sakura boot, the necessary spring boot starter, mapstruct, and a runtime postgresql test container.

functionalTestImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-predefined-all-module-functional-test:0.1.1")
Integration tests

This includes the basic functionalities of sakura boot, the necessary spring boot starter, and a runtime h2 in-memory database.

integrationTestImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-predefined-basic-integration-test:0.1.1")

This includes all the modules of sakura boot, the necessary spring boot starter, mapstruct, and a runtime h2 in-memory database.

integrationTestImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-predefined-all-module-integration-test:0.1.1")

Custom dependencies

To install with custom dependencies, add one starter to the project dependencies:

Functional tests

This includes only the basic functionalities of sakura boot.

functionalTestImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-basic-functional-test:0.1.1")

This includes all the modules of sakura boot.

functionalTestImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-all-module-functional-test:0.1.1")
Integration tests

This includes only the basic functionalities of sakura boot.

integrationTestImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-basic-integration-test:0.1.1")

This includes all the modules of sakura boot.

integrationTestImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-all-module-integration-test:0.1.1")
Unit tests

This includes only the basic functionalities of sakura boot.

testImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-basic-unit-test:0.1.1")

This includes all the modules of sakura boot.

testImplementation("org.sansenshimizu.sakuraboot:sakura-boot-starter-predefined-all-module-unit-test:0.1.1")

Customisation

For more fine-grained control over dependencies, import directly from each module and don’t use starters:

This includes the basic module with the core and log module of sakura boot and only necessary dependencies (e.g., spring-core, jakarta-persistence-api, etc).

implementation("org.sansenshimizu.sakuraboot:sakura-boot-basic:0.1.1")

The same can be applied with all the other modules of sakura boot.
The different artifactId are the following:

  • sakura-boot-basic

  • sakura-boot-log

  • sakura-boot-cache

  • sakura-boot-mapper

  • sakura-boot-specification

  • sakura-boot-hypermedia

  • sakura-boot-openapi

And for the test modules, the different artifactId are the following:

  • sakura-boot-basic-test

  • sakura-boot-cache-test

  • sakura-boot-mapper-test

  • sakura-boot-specification-test

  • sakura-boot-hypermedia-test

  • sakura-boot-integration-test

  • sakura-boot-functional-test