Files
Gropify/assets/home.html-no62ZQLF.js
github-actions[bot] b6e2fda7eb Deploy to GitHub pages
2025-11-15 17:19:55 +00:00

12 lines
7.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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(`<p><code>Gropify</code> 的配置方案与 <code>SweetProperty</code> 类似,如果你正在使用 <code>SweetProperty</code>,你可以考虑将其迁移到 <code>Gropify</code>。</p><h2 id="用途" tabindex="-1"><a class="header-anchor" href="#用途" aria-hidden="true">#</a> 用途</h2><p><code>Gropify</code> 主要针对 Kotlin DSL 构建脚本设计Groovy 语言可以直接将 <code>gradle.properties</code> 文件中的属性作为变量使用,但是你也可以通过 <code>Gropify</code> 来实现类型安全的属性访问。</p><p><code>Gropify</code> 同时支持将类似 <code>gradle.properties</code> 文件中的属性以类型安全的方式生成到 Kotlin、Java、Android 项目的源码中以供应用程序运行时使用,功能类似 Android 的 <code>BuildConfig</code> 中的 <code>buildConfigField</code> 功能。</p><p>假设我们有以下 <code>gradle.properties</code> 文件。</p><blockquote><p>示例如下</p></blockquote><div class="language-properties line-numbers-mode" data-ext="properties"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">project.app.name</span><span style="color:#ADBAC7;">=Gropify-Demo</span></span>
<span class="line"><span style="color:#F47067;">project.app.version</span><span style="color:#ADBAC7;">=1.0.0</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>这是 <code>Gropify</code> 自动生成的代码调用示例。</p><blockquote><p>构建脚本 (Kotlin DSL、Groovy DSL)</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> appName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> gropify.project.app.name</span></span>
<span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> appVersion </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> gropify.project.app.version</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-groovy line-numbers-mode" data-ext="groovy"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">def</span><span style="color:#F69D50;"> appName </span><span style="color:#F47067;">=</span><span style="color:#F69D50;"> gropify</span><span style="color:#F47067;">.</span><span style="color:#F69D50;">project</span><span style="color:#F47067;">.</span><span style="color:#F69D50;">app</span><span style="color:#F47067;">.</span><span style="color:#F69D50;">name</span></span>
<span class="line"><span style="color:#F47067;">def</span><span style="color:#F69D50;"> appVersion </span><span style="color:#F47067;">=</span><span style="color:#F69D50;"> gropify</span><span style="color:#F47067;">.</span><span style="color:#F69D50;">project</span><span style="color:#F47067;">.</span><span style="color:#F69D50;">app</span><span style="color:#F47067;">.</span><span style="color:#F69D50;">version</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><blockquote><p>源代码 (Kotlin、Java)</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> appName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> MyAppProperties.PROJECT_APP_NAME</span></span>
<span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> appVersion </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> MyAppProperties.PROJECT_APP_VERSION</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-java line-numbers-mode" data-ext="java"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">var</span><span style="color:#F69D50;"> </span><span style="color:#ADBAC7;">appName</span><span style="color:#F69D50;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> MyAppProperties.PROJECT_APP_NAME;</span></span>
<span class="line"><span style="color:#F47067;">var</span><span style="color:#F69D50;"> </span><span style="color:#ADBAC7;">appVersion</span><span style="color:#F69D50;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> MyAppProperties.PROJECT_APP_VERSION;</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p><code>Gropify</code> 同样支持 Kotlin Multiplatform 项目,你可以在 <code>commonMain</code> 源集中使用生成的属性类。</p><h2 id="语言要求" tabindex="-1"><a class="header-anchor" href="#语言要求" aria-hidden="true">#</a> 语言要求</h2><p>推荐使用 Kotlin DSL 来配置项目的构建脚本Groovy 语言同样受支持,但在纯 Groovy 项目中部分配置语法可能存在兼容性问题。</p><p>在 Groovy DSL 中使用此插件发生的任何问题,我们都将不再负责排查和修复,并且在后期版本可能会完全不再支持 Groovy DSL。</p><h2 id="功能贡献" tabindex="-1"><a class="header-anchor" href="#功能贡献" aria-hidden="true">#</a> 功能贡献</h2>`,19),g={href:"https://github.com/HighCapable/Gropify/issues",target:"_blank",rel:"noopener noreferrer"};function A(F,f){const a=l("ExternalLinkIcon");return p(),r("div",null,[t,d,y,u,e("p",null,[s("项目图标由 "),e("a",h,[s("MaiTungTM"),o(a)]),s(" 设计,名称取自 "),v,s("radleP"),m,s(",意为针对 Gradle 属性的插件。")]),e("p",null,[s("它是基于 "),e("a",b,[s("SweetProperty"),o(a)]),s(" 重构的全新项目,借鉴了以往的设计方案,使得其在原有基础上更加完善和易用。")]),_,e("p",null,[s("本项目的维护离不开各位开发者的支持和贡献,目前这个项目处于初期阶段,可能依然存在一些问题或者缺少你需要的功能, 如果可能,欢迎提交 PR 为此项目贡献你认为需要的功能或前往 "),e("a",g,[s("GitHub Issues"),o(a)]),s(" 向我们提出建议。")])])}const k=n(c,[["render",A],["__file","home.html.vue"]]);export{k as default};