Skip to content

Installation

Petrus Pradella edited this page Jun 26, 2026 · 9 revisions

Installation

The smallest thing that works

Add the repository and the recommended flavor (everydatabase-core), and you're done — every backend works out of the box.

Gradle

repositories {
    maven { url 'https://maven.petrus.dev/public' }
    mavenCentral()
}

dependencies {
    implementation 'br.com.finalcraft.everydatabase:everydatabase-core:1.0.4' // Only this one is necessary
   // implementation 'br.com.finalcraft.everydatabase:everydatabase-manager:1.0.4' // Separated module to handle cache and references
}

Maven

<repositories>
  <repository>
    <id>petrus-public</id>
    <url>https://maven.petrus.dev/public</url>
  </repository>
</repositories>

<dependency>
  <groupId>br.com.finalcraft.everydatabase</groupId>
  <artifactId>everydatabase-core</artifactId>
  <version>1.0.4</version>
</dependency>

Now jump to Quick Start for an end-to-end save/find, or Defining Entities to learn the descriptor.


Flavors

Flavor Artifact How deps reach you Pick it when…
Core (recommended) everydatabase-core normal POM dependencies you control your build and want to override/exclude versions the normal way
Libby everydatabase-libby downloaded at runtime via Libby you want a tiny jar and are fine fetching the set at first launch

everydatabase-core — recommended

The library with every backend dependency declared as a normal POM dependency. It works unmodified, and you keep full control through standard dependency management: upgrade, downgrade, or exclude any library by declaring your own. This is the only flavor where version overrides are possible — see the recipes on Dependency Versions & Overrides.

implementation 'br.com.finalcraft.everydatabase:everydatabase-core:1.0.4'

everydatabase-libby — runtime download

A thin coordinator (package br.com.finalcraft.everydatabase.libby) that downloads the canonical, non-relocated libraries at runtime. Bootstrap it before touching any storage class (e.g. in a plugin's onLoad):

import br.com.finalcraft.everydatabase.libby.DependencyManager;
import br.com.finalcraft.everydatabase.libby.EveryDatabaseDependencies;

DependencyManager manager = new DependencyManager("MyPlugin", getDataFolder(), "libs");
EveryDatabaseDependencies.loadAll(manager);   // then use Storages normally

📌 Noteeverydatabase-libby itself depends on net.byteflux:libby-core, resolved from https://repo.alessiodp.com/releases/. Add that repository to your build alongside the one above.


Adding the manager add-on (optional)

Typed references between entities and per-type caching live in a separate, optional artifact. Add both explicitly (the manager on top of a core flavor):

implementation 'br.com.finalcraft.everydatabase:everydatabase-manager:1.0.4'
implementation 'br.com.finalcraft.everydatabase:everydatabase-core:1.0.4'

Maven:

<dependency>
  <groupId>br.com.finalcraft.everydatabase</groupId>
  <artifactId>everydatabase-manager</artifactId>
  <version>1.0.4</version>
</dependency>
<dependency>
  <groupId>br.com.finalcraft.everydatabase</groupId>
  <artifactId>everydatabase-core</artifactId>
  <version>1.0.4</version>
</dependency>

It's an extra feature layer — see Caching & References.


Java requirements

Everything runs on Java 8+. The published artifacts are Java 8 bytecode, and the default dependency versions are deliberately pinned to the last Java-8-compatible lines. If you run on Java 11+ and want newer majors (HikariCP 5.x, H2 2.x), override them with the core flavor — the specific version numbers and the override recipes live on Dependency Versions & Overrides.


See also

Clone this wiki locally