# autoconfig-plus-maven-plugin **Repository Path**: Mr_Yuaniajia/autoconfig-plus-maven-plugin ## Basic Information - **Project Name**: autoconfig-plus-maven-plugin - **Description**: Autoconfig Plus 是一个增强版的 Maven 插件,基于阿里巴巴的 autoconfig-maven-plugin 开发。该插件在原有功能基础上增加了从远程服务器获取配置的能力,使得项目在构建过程中能够自动拉取远程配置并应用到应用程序中。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-08-27 - **Last Updated**: 2025-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: Maven, plugin ## README # Autoconfig Plus Maven Plugin ## 项目简介 Autoconfig Plus 是一个增强版的 Maven 插件,基于阿里巴巴的 `autoconfig-maven-plugin` 开发。该插件在原有功能基础上增加了从远程服务器获取配置的能力,使得项目在构建过程中能够自动拉取远程配置并应用到应用程序中。 主要功能: - 支持从远程 URL 获取配置信息 - 自动生成 `antx.properties` 配置文件 - 无缝集成阿里巴巴的 autoconfig 插件功能 - 在 Maven package 阶段自动执行配置替换 ## 使用方式 ### 1. 添加插件依赖 在项目的 `pom.xml` 中添加以下插件配置: ```xml com.funnylife.maven.plugin autoconfig-plus-maven-plugin 1.0.0 package autoconfig-plus http://your-config-server/config UTF-8 true false rewriteLocal-properties generate-resources autoconfig-plus http://your-config-server/config ${project.basedir}/src/main/resources ``` ### 2. 配置参数说明 - 仅提供本插件新增参数说明,`autoconfig-maven-plugin` 插件参数说明参考 [3.3](#3.3常用配置参数) 部分说明 | 参数名 | 是否必需 | 默认值 | 说明 | |---------------------|----------|--------|--------------------------| | `remoteConfigUrl` | 是 | 无 | 远程配置获取的 URL 地址 | ### 3. Alibaba Autoconfig Maven Plugin 完整用法 #### 3.1 模板配置文件 Autoconfig 使用模板文件来定义需要替换的配置项。模板文件通常以 `.tpl` 或 `.vm` 结尾,放置在 `src/main/resources/META-INF/autoconf` 目录下。 示例模板文件 `application.properties.tpl`: ```properties # 数据库配置 jdbc.url=@{database.url} jdbc.username=@{database.username} jdbc.password=@{database.password} # Redis配置 redis.host=@{redis.host} redis.port=@{redis.port} redis.password=@{redis.password} # 应用配置 app.name=@{app.name} app.version=@{app.version} ``` #### 3.2 自动配置描述符文件 在 `src/main/resources/META-INF/autoconf` 目录下创建 `auto-config.xml` 文件,用于描述配置项: ```xml ``` #### 3.3 常用配置参数 {#3.3常用配置参数} | 参数名 | 说明 | |-----------------------|-------------------------------------| | `dest` | 要配置的目标包文件或目录 | | `explodedDirectory` | 解压包的目标目录 | | `exploding` | 是否将包解压到目录 | | `charset` | 控制台字符编码 | | `strict` | 严格模式,配置项缺失时是否报错 | | `interactive` | 交互模式开关 | | `skip` | 是否跳过自动配置 | | `type` | 包类型: war, jar, ear 等 | | `userProperties` | 用户属性文件 | | `descriptors` | 包含/排除描述符文件,如 conf/auto-config.xml | | `packages` | 包含/排除包文件,如 target/*.war | ### 4. 远程配置接口要求 远程配置服务需要提供一个 RESTful 接口,返回格式为 JSON 的键值对,例如: ```json { "app.name": "my-application", "database.url": "jdbc:mysql://localhost:3306/mydb", "redis.host": "localhost", "redis.port": "6379" } ``` ### 5. 执行流程 1. 插件在 Maven package 阶段执行 2. 从 `remoteConfigUrl` 拉取配置信息 3. 默认将配置信息写入项目根目录的 `antx.properties` 文件 4. 调用官方 `autoconfig-maven-plugin` 执行配置替换 5. 完成构建过程 ### 6. 使用示例 ```bash # 执行 Maven 构建,自动应用远程配置 mvn clean package # 跳过 autoconfig 插件执行 mvn clean package -Dautoconfig.skip=true ``` ## 注意事项 - 确保远程配置服务在构建时可访问 - 插件会在项目根目录生成 `antx.properties` 文件,注意不要提交到版本控制系统 - 如果需要自定义`antx.properties`文件位置,可以通过 `userProperties` 参数指定输出文件夹 - 本插件已经包含 `autoconfig-maven-plugin` 插件,无需再引入该插件相应依赖