外观
配置参考手册
2026-03-05
本页为速查手册,列出 nebula {} 扩展的所有可配置属性和插件内置任务。
nebula {} 属性参考
基础功能开关
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
nebulaVersion | String | 读 nebula.version(gradle.properties) | nebula-support-dependencies BOM 版本,必须配置才能启用依赖管理 |
enableDependencyManagement | Boolean | true | 是否自动导入 Spring 依赖管理插件 + BOM |
enableRepositoryConfiguration | Boolean | true | 是否自动配置 Maven 仓库 |
enableCommonConfiguration | Boolean | true | 是否自动注入公共依赖(Lombok、MapStruct) |
enableTest | Boolean | true | 是否自动启用 JUnit Platform |
enableSonarqube | Boolean | false | 预留,暂未实现 |
仓库配置
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enablePrivateRepo | Boolean | true | 是否配置公司私服;私服不可访问时设为 false |
privateRepoUrl | String | 插件内嵌默认值 | 私服仓库地址,HTTP 自动开启 insecure 协议 |
privateRepoUsername | String | 无 | 私服用户名(私服无需登录时可省略) |
privateRepoPassword | String | 无 | 私服密码 |
URL 优先级:
nebula { privateRepoUrl = '...' }> 项目gradle.properties(nebula.private.url) > 插件 JAR 内嵌默认值。
编译与依赖排除
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
excludeModules | List<String> | ['spring-boot-starter-tomcat', 'spring-boot-starter-logging'] | 全局排除的依赖模块(module 名称匹配);配置后覆盖默认值,非追加 |
jvmArgs | List<String> | 7 条 --add-opens 参数(JDK 17+) | Application 插件运行时 JVM 参数 |
Maven 发布
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enablePublish | Boolean | false | 启用全量 Maven 发布:按名称规则识别可发布模块,自动接管 publications + repositories |
enablePublishRepository | Boolean | false | 仅注入发布仓库:不干预 publications,适合已自定义发布内容的模块(如 BOM) |
publishableNamePrefixes | List<String> | ['nebula-framework-', 'nebula-boot-starter-', 'nebula-tools-'] | 可发布模块名称前缀规则,满足其一即参与发布 |
publishableNameSuffixes | List<String> | ['-api'] | 可发布模块名称后缀规则 |
publishableModuleNames | List<String> | [] | 精确名称白名单,用于不符合前后缀规则的模块 |
publishReleaseUrl | String | 插件内嵌默认值 | Release 版本发布仓库地址(gradle.properties 中 nebula.publish.release.url 可覆盖) |
publishSnapshotUrl | String | 插件内嵌默认值 | Snapshot 版本发布仓库地址(gradle.properties 中 nebula.publish.snapshot.url 可覆盖) |
publishUsername | String | 读 nebula.publish.username | 发布仓库用户名 |
publishPassword | String | 读 nebula.publish.password | 发布仓库密码 |
内置 Gradle 任务
以下任务仅在根项目注册(task group:nebula),通过遍历子项目惰性收集:
| 任务名 | 说明 | 等价操作 |
|---|---|---|
nebulaPublishAll | 发布所有可发布模块到私服 Nexus | 遍历各子模块执行 publish |
nebulaPublishLocal | 发布所有可发布模块到本地 ~/.m2 | 遍历各子模块执行 publishToMavenLocal |
nebulaBuildAll | 编译所有可发布模块 | 遍历各子模块执行 build |
URL 来源优先级
| 优先级 | 来源 | 配置方式 |
|---|---|---|
| 1(最高) | nebula {} 块显式配置 | nebula { privateRepoUrl = '...' } |
| 2 | 项目 gradle.properties | nebula.private.url=http://... |
| 3 | 插件 JAR 内嵌默认值 | 在 nebula-support 编译时从其 gradle.properties 烘焙到 JAR 中 |
内嵌默认值解决了「消费方项目无需重复配置仓库地址」的问题,仅在地址有变更时才需要在项目侧覆盖。
配置示例(最简 + 完整对比)
最简配置(业务项目 / 不发布)
nebula {
nebulaVersion = '0.1.2-SNAPSHOT'
// 其余全部使用默认值
}标准框架项目配置
nebula {
nebulaVersion = nebulaBootVersion
enableDependencyManagement = true
enableRepositoryConfiguration = true
enablePrivateRepo = true
enablePublish = true
publishableModuleNames = ['nebula-boot-starter'] // 精确名称补充
}关闭私服 + 关闭发布(CI 环境)
nebula {
nebulaVersion = nebulaBootVersion
enablePrivateRepo = false // 私服不可访问
enablePublish = false // CI 不发布
}BOM 模块(仅注入发布仓库)
nebula {
enablePublishRepository = true // 仅注入仓库,不接管 publications
}gradle.properties 键名参考
| 键名 | 用途 |
|---|---|
nebula.version | nebula-support-dependencies BOM 版本(nebulaVersion 默认读此值) |
nebula.private.url | 私服拉取地址 |
nebula.publish.release.url | Release 发布仓库地址 |
nebula.publish.snapshot.url | Snapshot 发布仓库地址 |
nebula.publish.username | 发布仓库用户名 |
nebula.publish.password | 发布仓库密码 |
javaVersion | Java 编译版本(默认 17) |
