1
mirror of https://github.com/CarmJos/EasyConfiguration.git synced 2024-09-19 20:25:51 +00:00
轻松(做)配置,简单便捷的通用配置文件加载、读取与更新工具,可自定义配置格式。
Go to file
2023-12-23 21:18:50 +08:00
.doc docs(readme): Add English version of README files. 2023-12-23 21:15:15 +08:00
.github docs(readme): Add English version of README files. 2023-12-23 21:15:15 +08:00
core fix(type): 修复部分原生类型无法转换的问题。#54 2023-12-21 20:47:13 +08:00
demo fix(type): 修复部分原生类型无法转换的问题。#54 2023-12-21 20:47:13 +08:00
impl fix(type): 修复部分原生类型无法转换的问题。#54 2023-12-21 20:47:13 +08:00
.gitignore 初始版本完成 2022-04-17 00:32:33 +08:00
LICENSE [skip-ci] 修改开源协议 2022-04-22 17:44:21 +08:00
pom.xml fix(type): 修复部分原生类型无法转换的问题。#54 2023-12-21 20:47:13 +08:00
README_CN.md docs(readme): Add English version of README files. 2023-12-23 21:18:50 +08:00
README.md docs(readme): Add English version of README files. 2023-12-23 21:18:20 +08:00

README LANGUAGES [ English | 中文 ]

EasyConfiguration

version License workflow CodeFactor CodeSize

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.

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. For the latest JavaDoc release, click here.

Code Samples

Check out some code demonstrations here. For more examples, see the development guide.

Dependencies

Maven Dependency

Remote Repository Configuration
<project>
    <repositories>

        <repository>
            <!-- Using Maven Central Repository for secure and stable updates, though synchronization might be needed. -->
            <id>maven</id>
            <name>Maven Central</name>
            <url>https://repo1.maven.org/maven2</url>
        </repository>
  
        <repository>
            <!-- Using GitHub dependencies for real-time updates, configuration required (recommended). -->
            <id>EasyConfiguration</id>
            <name>GitHub Packages</name>
            <url>https://maven.pkg.github.com/CarmJos/EasyConfiguration</url>
        </repository>

    </repositories>
</project>
Generic Native Dependency
<project>
    <dependencies>
        <!-- Basic implementation part, requiring custom implementation of “Provider” and “Wrapper”. -->
        <dependency>
            <groupId>cc.carm.lib</groupId>
            <artifactId>easyconfiguration-core</artifactId>
            <version>[LATEST RELEASE]</version>
            <scope>compile</scope>
        </dependency>

        <!-- YAML file-based implementation, compatible with all Java environments. -->
        <dependency>
            <groupId>cc.carm.lib</groupId>
            <artifactId>easyconfiguration-yaml</artifactId>
            <version>[LATEST RELEASE]</version>
            <scope>compile</scope>
        </dependency>

        <!-- JSON file-based implementation, compatible with all Java environments. Note: JSON does not support file comments. -->
        <dependency>
            <groupId>cc.carm.lib</groupId>
            <artifactId>easyconfiguration-json</artifactId>
            <version>[LATEST RELEASE]</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>
</project>

Gradle Dependency

Remote Repository Configuration
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

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 (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.

Open Source License

This project's source code is licensed under the GNU LESSER GENERAL PUBLIC LICENSE.