README LANGUAGES [ [**English**](README.md) | [中文](README_CN.md) ]
# EasyConfiguration
[](https://github.com/CarmJos/EasyConfiguration/releases)
[](https://www.gnu.org/licenses/lgpl-3.0.html)
[](https://github.com/CarmJos/EasyConfiguration/actions/workflows/maven.yml)
[](https://www.codefactor.io/repository/github/carmjos/easyconfiguration)


**Easy _(to make)_ Configurations!**
A simple, easy-to-use and universal solution for managing configuration files.
Enjoy the ease of use with customizable formats for loading, reading, and updating your configuration files.
## Features & Advantages
- Class-based mechanism for initializing, loading, retrieving, and updating configuration files, ensuring convenience and efficiency.
- Supports manual serialization and deserialization of complex configurations.
- Offers multiple builder forms for rapid construction of `ConfigValue>` objects.
- Enables specification of configuration paths, comments, and more via annotations.
## Development
For a detailed development guide, [CLICK HERE](.doc/README.md).
For the latest JavaDoc release, [CLICK HERE](https://CarmJos.github.io/EasyConfiguration).
### Code Samples
Check out some code demonstrations [HERE](demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java).
For more examples, see the [Development Guide](.doc/README.md).
### Dependencies
#### Maven Dependency
Remote Repository Configuration
```xml
maven
Maven Central
https://repo1.maven.org/maven2
EasyConfiguration
GitHub Packages
https://maven.pkg.github.com/CarmJos/EasyConfiguration
```
Generic Native Dependency
```xml
cc.carm.lib
easyconfiguration-core
[LATEST RELEASE]
compile
cc.carm.lib
easyconfiguration-yaml
[LATEST RELEASE]
compile
cc.carm.lib
easyconfiguration-json
[LATEST RELEASE]
compile
```
#### Gradle Dependency
Remote Repository Configuration
```groovy
repositories {
// Using Maven Central Repository for secure and stable updates, though synchronization might be needed.
mavenCentral()
// Using GitHub dependencies for real-time updates, configuration required (recommended).
maven { url 'https://maven.pkg.github.com/CarmJos/EasyConfiguration' }
}
```
Generic Native Dependency
```groovy
dependencies {
// Basic implementation part, requiring custom implementation of “Provider” and “Wrapper”.
api "cc.carm.lib:easyconfiguration-core:[LATEST RELEASE]"
// YAML file-based implementation, compatible with all Java environments.
api "cc.carm.lib:easyconfiguration-yaml:[LATEST RELEASE]"
// JSON file-based implementation, compatible with all Java environments. Note: JSON does not support file comments.
api "cc.carm.lib:easyconfiguration-json:[LATEST RELEASE]"
}
```
## Derived Projects
### [**MineConfiguration**](https://github.com/CarmJos/MineConfiguration) (by @CarmJos)
EasyConfiguration for MineCraft!
Easily manage configurations on MineCraft-related server platforms.
Currently supports BungeeCord, Bukkit (Spigot) servers, with more platforms to be supported soon.
## Support and Donation
If you appreciate this plugin, consider supporting me with a donation!
Thank you for supporting open-source projects!
Many thanks to Jetbrains for kindly providing a license for us to work on this and other open-source projects.
[](https://www.jetbrains.com/?from=https://github.com/ArtformGames/ResidenceList)
## Open Source License
This project's source code is licensed under the [GNU LESSER GENERAL PUBLIC LICENSE](https://www.gnu.org/licenses/lgpl-3.0.html).