```text ____ _____ ____ __ _ / __/__ ____ __ __ / ___/__ ___ / _(_)__ ___ _________ _/ /_(_)__ ___ / _// _ `(_-` 对象。 - 支持通过注解规定配置对应的路径、注释等信息。 ## 开发 详细开发介绍请 [点击这里](.doc/README.md) , JavaDoc(最新Release) 请 [点击这里](https://CarmJos.github.io/EasyConfiguration) 。 ### 示例代码 为快速的展示该项目的适用性,这里有几个实际演示: - [数据库配置文件实例](demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java) - [全种类配置实例类演示](demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/DemoConfiguration.java) 您可以 [点击这里](demo/src/main/java/cc/carm/lib/configuration/demo) 直接查看现有的代码演示,更多复杂情况演示详见 [开发介绍](.doc/README.md) 。 ```java @HeaderComment("Configurations for sample") interface SampleConfig extends Configuration { @InlineComment("Enabled?") // 行内注释 ConfiguredValue ENABLED = ConfiguredValue.of(true); ConfiguredList UUIDS = ConfiguredList.builderOf(UUID.class).fromString() .parseValue(UUID::fromString).serializeValue(UUID::toString) .defaults( UUID.fromString("00000000-0000-0000-0000-000000000000"), UUID.fromString("00000000-0000-0000-0000-000000000001") ).build(); interface INFO extends Configuration { @HeaderComment("Configure your name!") // 头部注释 ConfiguredValue NAME = ConfiguredValue.of("Joker"); @ConfigPath("year") // 自定义配置路径,若不定义,则按照默认规则生成 ConfiguredValue AGE = ConfiguredValue.of(24); } } ``` ```java public class Sample { public static void main(String[] args) { // 1. 生成一个 “Provider” 用于给配置类提供源配置的文件。 ConfigurationProvider provider = EasyConfiguration.from("config.yml"); // 2. 通过 “Provider” 初始化配置类或配置实例。 provider.initialize(SampleConfig.class); // 3. 现在可以享受快捷方便的配置文件使用方式了~ SampleConfig.ENABLED.set(false); System.out.println("Your name is " + SampleConfig.INFO.NAME.getNotNull() + " !"); } } ``` ```yaml # Configurations for sample enabled: true # Enabled? uuids: - 00000000-0000-0000-0000-000000000000 - 00000000-0000-0000-0000-000000000001 info: # Configure your name! name: Joker year: 24 ``` ### 依赖方式 #### Maven 依赖
远程库配置 ```xml maven Maven Central https://repo1.maven.org/maven2 EasyConfiguration GitHub Packages https://maven.pkg.github.com/CarmJos/EasyConfiguration carm-repo Carm's Repo https://repo.carm.cc/repository/maven-public/ ```
通用原生依赖 ```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 cc.carm.lib easyconfiguration-hocon [LATEST RELEASE] compile cc.carm.lib easyconfiguration-sql [LATEST RELEASE] compile ```
#### Gradle 依赖
远程库配置 ```groovy repositories { // 采用Maven中心库,安全稳定,但版本更新需要等待同步 mavenCentral() // 采用github依赖库,实时更新,但需要配置 (推荐) maven { url 'https://maven.pkg.github.com/CarmJos/EasyConfiguration' } // 采用我的私人依赖库,简单方便,但可能因为变故而无法使用 maven { url 'https://repo.carm.cc/repository/maven-public/' } } ```
通用原生依赖 ```groovy dependencies { //基础实现部分,需要自行实现“Provider”与“Wrapper”。 api "cc.carm.lib:easyconfiguration-core:[LATEST RELEASE]" //基于YAML文件的实现版本,可用于全部Java环境。 api "cc.carm.lib:easyconfiguration-yaml:[LATEST RELEASE]" //基于JSON文件的实现版本,可用于全部Java环境。 //需要注意的是,JSON不支持文件注释。 api "cc.carm.lib:easyconfiguration-json:[LATEST RELEASE]" api "cc.carm.lib:easyconfiguration-hocon:[LATEST RELEASE]" api "cc.carm.lib:easyconfiguration-sql:[LATEST RELEASE]" } ```
## 衍生项目 ### [**MineConfiguration**](https://github.com/CarmJos/MineConfiguration) (by @CarmJos ) EasyConfiguration for MineCraft! 开始在 MineCraft 相关服务器平台上轻松(做)配置吧! 目前支持 BungeeCord, Bukkit(Spigot) 服务端,后续将支持更多平台。 ## 支持与捐赠 若您觉得本插件做的不错,您可以通过捐赠支持我! 感谢您对开源项目的支持! 万分感谢 Jetbrains 为我们提供了从事此项目和其他开源项目的许可! [![](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)](https://www.jetbrains.com/?from=https://github.com/ArtformGames/ResidenceList) ## 开源协议 本项目源码采用 [GNU LESSER GENERAL PUBLIC LICENSE](https://www.gnu.org/licenses/lgpl-3.0.html) 开源协议。