mirror of
https://github.com/HighCapable/Gropify.git
synced 2025-12-11 15:53:54 +08:00
12 lines
7.8 KiB
JavaScript
12 lines
7.8 KiB
JavaScript
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};
|