Skip to content

Installation

Petrus Pradella edited this page Jun 27, 2026 · 2 revisions

Installation

EveryConfig is published as a thin java-library jar to https://maven.petrus.dev/public. Jackson is a normal transitive dependency (not relocated).

Gradle

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

dependencies {
    implementation 'br.com.finalcraft:EveryConfig:1.0.1'
}

Maven

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

<dependency>
  <groupId>br.com.finalcraft</groupId>
  <artifactId>EveryConfig</artifactId>
  <version>1.0.1</version>
</dependency>

What you get transitively

Dependency Why Scope
jackson-databind the serialization engine (the ObjectNode tree, the mapper) compile (api)
jackson-dataformat-yaml / -toml YAML and TOML leaf-value (de)serialization compile (api)
jackson-datatype-jsr310 java.time (Instant, LocalDate, Duration, …) runtime
jackson-datatype-jdk8 Optional / OptionalInt runtime

Jackson types appear on EveryConfig's public surface (Config.getRoot() returns an ObjectNode), so databind/dataformat are api. The library's major version tracks Jackson's major: 1.x ⟷ Jackson 2.x. Adopting Jackson 3 (tools.jackson.*) would be EveryConfig 2.x.

Shading on Bukkit/Spigot

A plugin that bundles EveryConfig should run its own shadowJar and relocate com.fasterxml.jackson and org.yaml.snakeyaml in its shade step:

shadowJar {
    relocate 'com.fasterxml.jackson', 'my.plugin.libs.jackson'
    relocate 'org.yaml.snakeyaml',    'my.plugin.libs.snakeyaml'
}

Relocation policy belongs at the leaf artifact (your plugin) — the only place that knows the server's classpath. EveryConfig ships thin on purpose and never relocates for you.

Runtime requirement

EveryConfig runs on Java 8+ (bytecode targets Java 8). See Building & Testing for the build toolchain.

→ Next: Quick Start

Clone this wiki locally