-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
EveryConfig is published as a thin java-library jar to https://maven.petrus.dev/public. Jackson is a
normal transitive dependency (not relocated).
repositories {
maven { url 'https://maven.petrus.dev/public' }
mavenCentral()
}
dependencies {
implementation 'br.com.finalcraft:EveryConfig:1.0.1'
}<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>| 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 anObjectNode), sodatabind/dataformatareapi. The library's major version tracks Jackson's major:1.x⟷ Jackson2.x. Adopting Jackson 3 (tools.jackson.*) would be EveryConfig2.x.
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.
EveryConfig runs on Java 8+ (bytecode targets Java 8). See Building & Testing for the build toolchain.
→ Next: Quick Start
EveryConfig · br.com.finalcraft:EveryConfig · One config API, every format, comments included · made by Petrus Pradella
Getting Started
Core Concepts
Typed Binding
Operations
Reference
Contributing