import{_ as n,r as l,o as p,c as r,a as e,b as s,d as o,e as i}from"./app-aH6YcK-Q.js";const c={},t=e("h1",{id:"介绍",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#介绍","aria-hidden":"true"},"#"),s(" 介绍")],-1),d=e("blockquote",null,[e("p",null,[e("code",null,"Gropify"),s(" 是一个类型安全且现代化的 Gradle 属性插件。")])],-1),y=e("h2",{id:"背景",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#背景","aria-hidden":"true"},"#"),s(" 背景")],-1),u=e("p",null,[s("这是一个为 Gradle 构建脚本设计的插件,旨在将类似 "),e("code",null,"gradle.properties"),s(" 文件中的属性以类型安全的方式引入到构建脚本中,从而避免硬编码字符串可能带来的问题。")],-1),h={href:"https://github.com/Lagrio",target:"_blank",rel:"noopener noreferrer"},v=e("strong",null,"G",-1),m=e("strong",null,"ropify",-1),b={href:"https://github.com/HighCapable/SweetProperty",target:"_blank",rel:"noopener noreferrer"},_=i(`
Gropify 的配置方案与 SweetProperty 类似,如果你正在使用 SweetProperty,你可以考虑将其迁移到 Gropify。
Gropify 主要针对 Kotlin DSL 构建脚本设计,Groovy 语言可以直接将 gradle.properties 文件中的属性作为变量使用,但是你也可以通过 Gropify 来实现类型安全的属性访问。
Gropify 同时支持将类似 gradle.properties 文件中的属性以类型安全的方式生成到 Kotlin、Java、Android 项目的源码中以供应用程序运行时使用,功能类似 Android 的 BuildConfig 中的 buildConfigField 功能。
假设我们有以下 gradle.properties 文件。
示例如下
project.app.name=Gropify-Demo
project.app.version=1.0.0
这是 Gropify 自动生成的代码调用示例。
构建脚本 (Kotlin DSL、Groovy DSL)
val appName = gropify.project.app.name
val appVersion = gropify.project.app.version
def appName = gropify.project.app.name
def appVersion = gropify.project.app.version
源代码 (Kotlin、Java)
val appName = MyAppProperties.PROJECT_APP_NAME
val appVersion = MyAppProperties.PROJECT_APP_VERSION
var appName = MyAppProperties.PROJECT_APP_NAME;
var appVersion = MyAppProperties.PROJECT_APP_VERSION;
Gropify 同样支持 Kotlin Multiplatform 项目,你可以在 commonMain 源集中使用生成的属性类。
推荐使用 Kotlin DSL 来配置项目的构建脚本,Groovy 语言同样受支持,但在纯 Groovy 项目中部分配置语法可能存在兼容性问题。
在 Groovy DSL 中使用此插件发生的任何问题,我们都将不再负责排查和修复,并且在后期版本可能会完全不再支持 Groovy DSL。