mirror of
https://github.com/HighCapable/Gropify.git
synced 2025-12-12 00:03:56 +08:00
527 lines
116 KiB
HTML
527 lines
116 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<meta name="generator" content="VuePress 2.0.0-rc.0">
|
|
<style>
|
|
:root {
|
|
--c-bg: #fff;
|
|
}
|
|
html.dark {
|
|
--c-bg: #22272e;
|
|
}
|
|
html, body {
|
|
background-color: var(--c-bg);
|
|
}
|
|
</style>
|
|
<script>
|
|
const userMode = localStorage.getItem('vuepress-color-scheme');
|
|
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
|
document.documentElement.classList.toggle('dark', true);
|
|
}
|
|
</script>
|
|
<link rel="icon" href="/Gropify/images/logo.svg"><title>Quick Start | Gropify</title><meta name="description" content="A type-safe and modern properties plugin for Gradle">
|
|
<link rel="preload" href="/Gropify/assets/style-ZvMm2Cad.css" as="style"><link rel="stylesheet" href="/Gropify/assets/style-ZvMm2Cad.css">
|
|
<link rel="modulepreload" href="/Gropify/assets/app-aH6YcK-Q.js"><link rel="modulepreload" href="/Gropify/assets/quick-start.html-7AxcUCW_.js"><link rel="modulepreload" href="/Gropify/assets/quick-start.html-f_E-gIx7.js">
|
|
<link rel="prefetch" href="/Gropify/assets/index.html-zPqCtEf7.js" as="script"><link rel="prefetch" href="/Gropify/assets/index.html-J5Mpt7Vl.js" as="script"><link rel="prefetch" href="/Gropify/assets/index.html-7LpniZrm.js" as="script"><link rel="prefetch" href="/Gropify/assets/home.html-TFY4cEol.js" as="script"><link rel="prefetch" href="/Gropify/assets/about.html-h4rdh_fS.js" as="script"><link rel="prefetch" href="/Gropify/assets/changelog.html-OIxI57Wq.js" as="script"><link rel="prefetch" href="/Gropify/assets/contacts.html-fepWrcVL.js" as="script"><link rel="prefetch" href="/Gropify/assets/future.html-mEvcxp6P.js" as="script"><link rel="prefetch" href="/Gropify/assets/about.html-6Xw5XEhi.js" as="script"><link rel="prefetch" href="/Gropify/assets/changelog.html-xI7_Sq17.js" as="script"><link rel="prefetch" href="/Gropify/assets/contacts.html-oiF8uxsH.js" as="script"><link rel="prefetch" href="/Gropify/assets/future.html-LX8OEuCN.js" as="script"><link rel="prefetch" href="/Gropify/assets/home.html-9eiAlurd.js" as="script"><link rel="prefetch" href="/Gropify/assets/quick-start.html-wQnE0x98.js" as="script"><link rel="prefetch" href="/Gropify/assets/404.html-6Yl8cQE3.js" as="script"><link rel="prefetch" href="/Gropify/assets/index.html-7DNoxpGZ.js" as="script"><link rel="prefetch" href="/Gropify/assets/index.html-H28pjygm.js" as="script"><link rel="prefetch" href="/Gropify/assets/index.html-WpXt5Cz7.js" as="script"><link rel="prefetch" href="/Gropify/assets/home.html-2op2IBCZ.js" as="script"><link rel="prefetch" href="/Gropify/assets/about.html-jqvjl3Ob.js" as="script"><link rel="prefetch" href="/Gropify/assets/changelog.html-HK_jZl0_.js" as="script"><link rel="prefetch" href="/Gropify/assets/contacts.html-umJCUAv2.js" as="script"><link rel="prefetch" href="/Gropify/assets/future.html-T9ih0RxQ.js" as="script"><link rel="prefetch" href="/Gropify/assets/about.html-AyhWm9Wa.js" as="script"><link rel="prefetch" href="/Gropify/assets/changelog.html-dsukWq08.js" as="script"><link rel="prefetch" href="/Gropify/assets/contacts.html-mhfINZEn.js" as="script"><link rel="prefetch" href="/Gropify/assets/future.html-UrATvnbP.js" as="script"><link rel="prefetch" href="/Gropify/assets/home.html-no62ZQLF.js" as="script"><link rel="prefetch" href="/Gropify/assets/quick-start.html-umL0lxu-.js" as="script"><link rel="prefetch" href="/Gropify/assets/404.html-UdYhvg0G.js" as="script">
|
|
</head>
|
|
<body>
|
|
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/Gropify/en/" class=""><img class="logo" src="/Gropify/images/logo.svg" alt="Gropify"><span class="site-name can-hide">Gropify</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Navigation"><span class="title">Navigation</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Navigation"><span class="title">Navigation</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Get Started</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Gropify/en/guide/home.html" class="" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a aria-current="page" href="/Gropify/en/guide/quick-start.html" class="router-link-active router-link-exact-active router-link-active" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>About</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Gropify/en/about/changelog.html" class="" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Gropify/en/about/future.html" class="" aria-label="Looking Toward the Future"><!--[--><!--]--> Looking Toward the Future <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Gropify/en/about/contacts.html" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Gropify/en/about/about.html" class="" aria-label="About This Document"><!--[--><!--]--> About This Document <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/Gropify/en/about/contacts" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">English (US)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">English (US)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/Gropify/en/guide/quick-start.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/Gropify/zh-cn/guide/quick-start.html" class="" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/HighCapable/Gropify" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="toggle color mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><form class="search-box" role="search"><input type="search" placeholder="Search" autocomplete="off" spellcheck="false" value><!----></form></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Navigation"><span class="title">Navigation</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Navigation"><span class="title">Navigation</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Get Started</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Gropify/en/guide/home.html" class="" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a aria-current="page" href="/Gropify/en/guide/quick-start.html" class="router-link-active router-link-exact-active router-link-active" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>About</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Gropify/en/about/changelog.html" class="" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Gropify/en/about/future.html" class="" aria-label="Looking Toward the Future"><!--[--><!--]--> Looking Toward the Future <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Gropify/en/about/contacts.html" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Gropify/en/about/about.html" class="" aria-label="About This Document"><!--[--><!--]--> About This Document <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/Gropify/en/about/contacts" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">English (US)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">English (US)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/Gropify/en/guide/quick-start.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/Gropify/zh-cn/guide/quick-start.html" class="" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/HighCapable/Gropify" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active collapsible">Get Started <span class="down arrow"></span></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/Gropify/en/guide/home.html" class="sidebar-item" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#deploy-plugin" class="router-link-active router-link-exact-active sidebar-item" aria-label="Deploy Plugin"><!--[--><!--]--> Deploy Plugin <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#feature-configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Feature Configuration"><!--[--><!--]--> Feature Configuration <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#common-configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Common Configuration"><!--[--><!--]--> Common Configuration <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#build-script-configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Build Script Configuration"><!--[--><!--]--> Build Script Configuration <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#android-project-configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Android Project Configuration"><!--[--><!--]--> Android Project Configuration <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#jvm-project-configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="JVM Project Configuration"><!--[--><!--]--> JVM Project Configuration <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#kotlin-multiplatform-project-configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Kotlin Multiplatform Project Configuration"><!--[--><!--]--> Kotlin Multiplatform Project Configuration <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#usage-examples" class="router-link-active router-link-exact-active sidebar-item" aria-label="Usage Examples"><!--[--><!--]--> Usage Examples <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#possible-issues" class="router-link-active router-link-exact-active sidebar-item" aria-label="Possible Issues"><!--[--><!--]--> Possible Issues <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Gropify/en/guide/quick-start.html#limitations" class="router-link-active router-link-exact-active sidebar-item" aria-label="Limitations"><!--[--><!--]--> Limitations <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">About <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/Gropify/en/about/changelog.html" class="sidebar-item" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a><!----></li><li><a href="/Gropify/en/about/future.html" class="sidebar-item" aria-label="Looking Toward the Future"><!--[--><!--]--> Looking Toward the Future <!--[--><!--]--></a><!----></li><li><a href="/Gropify/en/about/contacts.html" class="sidebar-item" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a><!----></li><li><a href="/Gropify/en/about/about.html" class="sidebar-item" aria-label="About This Document"><!--[--><!--]--> About This Document <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><!--]--><div><h1 id="quick-start" tabindex="-1"><a class="header-anchor" href="#quick-start" aria-hidden="true">#</a> Quick Start</h1><blockquote><p>Integrate <code>Gropify</code> into your project.</p></blockquote><h2 id="deploy-plugin" tabindex="-1"><a class="header-anchor" href="#deploy-plugin" aria-hidden="true">#</a> Deploy Plugin</h2><p><img src="https://img.shields.io/maven-central/v/com.highcapable.gropify/com.highcapable.gropify.gradle.plugin?logo=apachemaven&logoColor=orange&style=flat-square" alt="Maven Central"><span style="margin-left:5px;"></span><img src="https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fraw.githubusercontent.com%2FHighCapable%2Fmaven-repository%2Frefs%2Fheads%2Fmain%2Frepository%2Freleases%2Fcom%2Fhighcapable%2Fgropify%2Fcom.highcapable.gropify.gradle.plugin%2Fmaven-metadata.xml&logo=apachemaven&logoColor=orange&label=highcapable-maven-releases&style=flat-square" alt="Maven metadata URL"></p><p><code>Gropify</code> dependencies are published on <strong>Maven Central</strong> and our public repository. You can configure the repository as follows.</p><p>We recommend using Gradle version <code>7.x.x</code> or higher, and recommend using Kotlin DSL as the Gradle build script language. This documentation will no longer detail how to use it in Groovy DSL.</p><p>We recommend using the new <code>pluginManagement</code> method for deployment, which is a feature added since Gradle version <code>7.x.x</code>.</p><p>If your project is still using <code>buildscript</code> for management, we recommend migrating to the new method. Instructions for the old version will no longer be provided here.</p><p>First, configure the plugin repository in your project's <code>settings.gradle.kts</code>.</p><blockquote><p>The following example</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:#DCBDFB;">pluginManagement</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">repositories</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">gradlePluginPortal</span><span style="color:#ADBAC7;">() </span><span style="color:#768390;">// Optional</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">google</span><span style="color:#ADBAC7;">() </span><span style="color:#768390;">// Optional</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">mavenCentral</span><span style="color:#ADBAC7;">() </span><span style="color:#768390;">// Required</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// (Optional) You can add this URL to use our public repository</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// This repository is added as an alternative when Sonatype-OSS fails to publish dependencies</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// For details, please visit: https://github.com/HighCapable/maven-repository</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">maven</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"https://raw.githubusercontent.com/HighCapable/maven-repository/main/repository/releases"</span><span style="color:#ADBAC7;">)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Then add the <code>Gropify</code> plugin dependency in <code>plugin</code> in <code>settings.gradle.kts</code>. Please note <strong>do not</strong> add <code>apply false</code> after it.</p><blockquote><p>The following example</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:#DCBDFB;">plugins</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">id</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"com.highcapable.gropify"</span><span style="color:#ADBAC7;">) version </span><span style="color:#96D0FF;">"<version>"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div></div></div><p>Please replace <code><version></code> with the version shown at the top of this section.</p><p>After completing the above configuration, run Gradle sync once.</p><p><code>Gropify</code> will automatically search for <code>gradle.properties</code> files in the root project and each subproject, read the property key-values in them, and generate corresponding code for each project.</p><div class="custom-container warning"><p class="custom-container-title">Notice</p><p><code>Gropify</code> can only be applied to <code>settings.gradle.kts</code>, configuring it once will take effect globally. Please do not apply it to <code>build.gradle.kts</code>, otherwise the functionality will be invalid.</p></div><h2 id="feature-configuration" tabindex="-1"><a class="header-anchor" href="#feature-configuration" aria-hidden="true">#</a> Feature Configuration</h2><p>You can configure <code>Gropify</code> to implement customization and personalized features.</p><p><code>Gropify</code> provides relatively rich customizable features. Below are the descriptions and configuration methods for these features.</p><p>Please add the <code>gropify</code> method block in your <code>settings.gradle.kts</code> to start configuring <code>Gropify</code>.</p><p>To use in Groovy DSL, please change all variable <code>=</code> to spaces, remove <code>is</code> before <code>Enabled</code>.</p><p>If you encounter a <code>Gradle DSL method not found</code> error, the solution is to migrate to Kotlin DSL.</p><p>If you don't want to use Kotlin DSL entirely, you can also migrate only <code>settings.gradle</code> to <code>settings.gradle.kts</code>.</p><blockquote><p>The following example</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:#DCBDFB;">gropify</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enable Gropify, setting it to `false` will disable all features.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> isEnabled </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to enable debug mode.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can help us identify the problem by enabling this option</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// to print more debugging information in the logs.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: THIS IS ONLY FOR DEBUGGING!</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The debug log will contain your local environment,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// which may contain sensitive information.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Please be sure to protect this information.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> debugMode </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">false</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><code>Gropify</code>'s configuration mode is divided into three types: <code>global</code> global configuration, and <code>rootProject</code>, <code>projects</code> root project and subproject configuration.</p><p>You can continue to configure and integrate the configuration of the parent project in the child code blocks.</p><p>All configurations below are performed in the <code>gropify</code> method block.</p><blockquote><p>The following example</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:#768390;">// Global configuration.</span></span>
|
|
<span class="line"><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#768390;">// You can modify configurations in all projects in the global configuration.</span></span>
|
|
<span class="line"><span style="color:#768390;">// Configurations not declared in each project will use the global configuration.</span></span>
|
|
<span class="line"><span style="color:#768390;">// The functions in each configuration method block are exactly the same.</span></span>
|
|
<span class="line"><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#768390;">// You can refer to the configuration methods of root project and subprojects below.</span></span>
|
|
<span class="line"><span style="color:#DCBDFB;">global</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Common configuration.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">common</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "common".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Build script configuration.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">buildscript</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "buildscript".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Android project configuration.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">android</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "android".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// JVM project configuration.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">jvm</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "jvm".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Kotlin Multiplatform project configuration.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">kmp</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "kmp".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#768390;">// Root project configuration.</span></span>
|
|
<span class="line"><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#768390;">// This is a special configuration method block that can only be used for the root project.</span></span>
|
|
<span class="line"><span style="color:#DCBDFB;">rootProject</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">common</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "common".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">buildscript</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "buildscript".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">android</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "android".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">jvm</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "jvm".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">kmp</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "kmp".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#768390;">// Other projects and subprojects configuration.</span></span>
|
|
<span class="line"><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#768390;">// Fill in the full name of the project you need to configure in the</span></span>
|
|
<span class="line"><span style="color:#768390;">// method parameters to configure the corresponding project.</span></span>
|
|
<span class="line"><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#768390;">// If the current project is a subproject, you must include the ":" before</span></span>
|
|
<span class="line"><span style="color:#768390;">// the subproject name, such as ":app".</span></span>
|
|
<span class="line"><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#768390;">// If the current project is a nested subproject, such as app → sub,</span></span>
|
|
<span class="line"><span style="color:#768390;">// you need to use ":" to separate multiple subprojects, such as ":app:sub".</span></span>
|
|
<span class="line"><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#768390;">// The name of the root project cannot be used directly to configure subprojects,</span></span>
|
|
<span class="line"><span style="color:#768390;">// please use "rootProject".</span></span>
|
|
<span class="line"><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#768390;">// You can configure multiple projects and subprojects at the same time by filling</span></span>
|
|
<span class="line"><span style="color:#768390;">// in an array of full project names in the method parameters to</span></span>
|
|
<span class="line"><span style="color:#768390;">// configure each corresponding project.</span></span>
|
|
<span class="line"><span style="color:#DCBDFB;">projects</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">":app"</span><span style="color:#ADBAC7;">, </span><span style="color:#96D0FF;">":modules:library1"</span><span style="color:#ADBAC7;">, </span><span style="color:#96D0FF;">":modules:library2"</span><span style="color:#ADBAC7;">) {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">common</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "common".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">buildscript</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "buildscript".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">android</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "android".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">jvm</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "jvm".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">kmp</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Configure "kmp".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>You can continue below to learn how to configure the features in each method block.</p><h3 id="common-configuration" tabindex="-1"><a class="header-anchor" href="#common-configuration" aria-hidden="true">#</a> Common Configuration</h3><p>Here you can configure related features for all configuration types at the same time. The configurations here will be applied down to <a href="#build-script-configuration">Build Script Configuration</a>, <a href="#android-project-configuration">Android Project Configuration</a>, <a href="#jvm-project-configuration">JVM Project Configuration</a>, <a href="#kotlin-multiplatform-project-configuration">Kotlin Multiplatform Project Configuration</a>.</p><blockquote><p>The following example</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:#DCBDFB;">common</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enable feature.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can set [buildscript], [android], [jvm], [kmp] separately.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> isEnabled </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to exclude the non-string type key-values content.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enabled by default, when enabled, key-values and content that are not</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// string types will be excluded from properties' key-values.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> excludeNonStringValue </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to use type auto conversion.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enabled by default, when enabled, the type in the properties' key-values will be</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// automatically identified and converted to the corresponding type.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// After enabling, if you want to force the content of a key-values to be a string type,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// you can use single quotes or double quotes to wrap the entire string.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: After disabled this function, the functions mentioned above will also be invalid.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> useTypeAutoConversion </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to use key-values content interpolation.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enabled by default, after enabling it will automatically identify</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// the `${...}` content in the properties' key-values content and replace it.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Note: The interpolated content will only be looked up from the</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// current (current configuration file) properties' key-values list.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> useValueInterpolation </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Set exists property files.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The property files will be automatically obtained from the root directory</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// of the current root project,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// subproject and user directory according to the file name you set.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// By default, will add "gradle.properties" if [addDefault] is `true`.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can add multiple sets of property files name, they will be read in order.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: Generally there is no need to modify this setting,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// an incorrect file name will result in obtaining empty key-values content.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">existsPropertyFiles</span><span style="color:#ADBAC7;">(</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"some-other-1.properties"</span><span style="color:#ADBAC7;">,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"some-other-2.properties"</span><span style="color:#ADBAC7;">,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> addDefault </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> )</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Set a permanent list of properties' key-values.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Here you can set some key-values that must exist, these key-values will be</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// generated regardless of whether they can be obtained from the properties' key-values.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// These keys use the content of the properties' key if it exists,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// use the content set here if it does not exist.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: Special symbols and spaces cannot exist in properties' key names,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// otherwise the generation may fail.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">permanentKeyValues</span><span style="color:#ADBAC7;">(</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"permanent.some.key1"</span><span style="color:#ADBAC7;"> to </span><span style="color:#96D0FF;">"some_value_1"</span><span style="color:#ADBAC7;">,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"permanent.some.key2"</span><span style="color:#ADBAC7;"> to </span><span style="color:#96D0FF;">"some_value_2"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> )</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Set a replacement list of properties' key-values.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Here you can set some key-values that need to be replaced, these key-values</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// will be replaced the existing properties' key-values, if not exist, they will be ignored.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The key-values set here will also overwrite the key-values set in [permanentKeyValues].</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">replacementKeyValues</span><span style="color:#ADBAC7;">(</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"some.key1"</span><span style="color:#ADBAC7;"> to </span><span style="color:#96D0FF;">"new.value1"</span><span style="color:#ADBAC7;">,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"some.key2"</span><span style="color:#ADBAC7;"> to </span><span style="color:#96D0FF;">"new.value2"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> )</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Set a key list of properties' key-values name that need to be excluded.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Here you can set some key names that you want to exclude from</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// known properties' key-values.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// These keys are excluded if they are present in the properties' key,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// will not appear in the generated code.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: If you exclude key-values set in [permanentKeyValues], then they will</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// only change to the initial key-values content you set and continue to exist.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">excludeKeys</span><span style="color:#ADBAC7;">(</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"exclude.some.key1"</span><span style="color:#ADBAC7;">,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"exclude.some.key2"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> )</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Set a key list of properties' key-values name that need to be included.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Here you can set some key value names that you want to include from</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// known properties' key-values.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// These keys are included if the properties' key exists,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// unincluded keys will not appear in the generated code.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">includeKeys</span><span style="color:#ADBAC7;">(</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"include.some.key1"</span><span style="color:#ADBAC7;">,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"include.some.key2"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> )</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Set properties' key-values rules.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can set up a set of key-values rules,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// use [ValueRule] to create new rule for parsing the obtained key-values content.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// These key-values rules are applied when properties' keys exist.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">keyValuesRules</span><span style="color:#ADBAC7;">(</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"some.key1"</span><span style="color:#ADBAC7;"> to </span><span style="color:#DCBDFB;">ValueRule</span><span style="color:#ADBAC7;"> { </span><span style="color:#F47067;">if</span><span style="color:#ADBAC7;"> (it.</span><span style="color:#DCBDFB;">contains</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"_"</span><span style="color:#ADBAC7;">)) it.</span><span style="color:#DCBDFB;">replace</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"_"</span><span style="color:#ADBAC7;">, </span><span style="color:#96D0FF;">"-"</span><span style="color:#ADBAC7;">) </span><span style="color:#F47067;">else</span><span style="color:#ADBAC7;"> it },</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"some.key2"</span><span style="color:#ADBAC7;"> to </span><span style="color:#DCBDFB;">ValueRule</span><span style="color:#ADBAC7;"> { </span><span style="color:#96D0FF;">"</span><span style="color:#6CB6FF;">$it</span><span style="color:#96D0FF;">-value"</span><span style="color:#ADBAC7;"> },</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can also specify the expected type class,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// the type you specify will be used during generation,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// and an exception will be thrown if the type cannot be converted correctly.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// If the [useTypeAutoConversion] is not enabled, this parameter will be ignored.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"some.key3"</span><span style="color:#ADBAC7;"> to </span><span style="color:#DCBDFB;">ValueRule</span><span style="color:#ADBAC7;">(Int::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> )</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Set where to find properties' key-values.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Defaults are [GropifyLocation.CurrentProject], [GropifyLocation.RootProject].</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can set this up using the following types.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - [GropifyLocation.CurrentProject]</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - [GropifyLocation.RootProject]</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - [GropifyLocation.Global]</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - [GropifyLocation.System]</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - [GropifyLocation.SystemEnv]</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// We will generate properties' key-values in sequence from the locations you set,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// the order of the generation locations follows the order you set.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Risk warning: [GropifyLocation.Global], [GropifyLocation.System],</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// [GropifyLocation.SystemEnv] may have keys and certificates,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// please manage the generated code carefully.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">locations</span><span style="color:#ADBAC7;">(GropifyLocation.CurrentProject, GropifyLocation.RootProject)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container tip"><p class="custom-container-title">Tips</p><p>When referencing <code>GropifyLocation</code>, the build script may generate the following at the top of the build script when used with IDE auto-import.</p><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">import</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">com.highcapable.gropify.plugin.config.type.GropifyLocation</span></span>
|
|
<span class="line"></span></code></pre></div><p><code>Gropify</code> does alias processing for this, you can directly delete this import statement.</p></div><h3 id="build-script-configuration" tabindex="-1"><a class="header-anchor" href="#build-script-configuration" aria-hidden="true">#</a> Build Script Configuration</h3><p>The code generated in the build script can be directly used by the current <code>build.gradle.kts</code>, <code>build.gradle</code>.</p><p>The configuration here includes the configuration in <code>common</code>, and you can override it.</p><blockquote><p>The following example</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:#DCBDFB;">buildscript</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom buildscript extension name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is "gropify".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> extensionName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"gropify"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container warning"><p class="custom-container-title">Notice</p><p>Gradle also has a <code>buildscript</code> method block, please be careful to use the correct DSL level.</p></div><h3 id="android-project-configuration" tabindex="-1"><a class="header-anchor" href="#android-project-configuration" aria-hidden="true">#</a> Android Project Configuration</h3><p>The content in this configuration block only takes effect for projects with AGP.</p><p>The configuration here includes the configuration in <code>common</code>, and you can override it.</p><blockquote><p>The following example</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:#DCBDFB;">android</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated directory path.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can fill in the path relative to the current project.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Format example: "path/to/your/src/main", the "src/main" is a fixed suffix.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is "build/generated/gropify/src/main".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// We recommend that you set the generated path under the "build" directory,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// which is ignored by version control systems by default.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> generateDirPath </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"build/generated/gropify"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom deployment `sourceSet` name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// If your project source code deployment name is not default, you can customize it here.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is "main".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> sourceSetName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"main"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated package name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Android projects use the `namespace` in the `android` configuration method block</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// by default.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The "generated" is a fixed suffix that avoids conflicts with your own namespaces,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// if you don't want this suffix, you can refer to [isIsolationEnabled].</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> packageName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"com.example.mydemo"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated class name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is use the name of the current project.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The "Properties" is a fixed suffix to distinguish it from your own class names.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> className </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"MyDemo"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to use Kotlin language generation.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enabled by default, when enabled will generate Kotlin code,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// disabled will generate Java code.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: This option will be disabled when this project is a pure Java project.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> useKotlin </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to enable restricted access.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Disabled by default, when enabled will add the `internal` modifier to</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// generated Kotlin classes or remove the `public` modifier to generated Java classes.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> isRestrictedAccessEnabled </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">false</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to enable code isolation.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enabled by default, when enabled will generate code in an</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// isolated package suffix "generated" to avoid conflicts with other projects that</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// also use or not only Gropify to generate code.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: If you disable this option, please make sure that there are no other projects</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// that also use or not only Gropify to generate code to avoid conflicts.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> isIsolationEnabled </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to use manifest placeholders' generation.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// </span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Disabled by default, when enabled will synchronize the properties' key-values</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// to the `manifestPlaceholders` in the `android` configuration method block.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> manifestPlaceholders </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">false</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="jvm-project-configuration" tabindex="-1"><a class="header-anchor" href="#jvm-project-configuration" aria-hidden="true">#</a> JVM Project Configuration</h3><p>The content in this configuration block only takes effect for pure JVM projects (including Kotlin and Java projects). For Android projects, please refer to <a href="#android-project-configuration">Android Project Configuration</a> for configuration.</p><p>The configuration here includes the configuration in <code>common</code>, and you can override it.</p><blockquote><p>The following example</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:#DCBDFB;">jvm</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated directory path.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can fill in the path relative to the current project.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Format example: "path/to/your/src/main", the "src/main" is a fixed suffix.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is "build/generated/gropify/src/main".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// We recommend that you set the generated path under the "build" directory,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// which is ignored by version control systems by default.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> generateDirPath </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"build/generated/gropify"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom deployment `sourceSet` name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// If your project source code deployment name is not default, you can customize it here.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is "main".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> sourceSetName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"main"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated package name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Java, Kotlin projects use the `project.group` of the project settings by default.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The "generated" is a fixed suffix that avoids conflicts with your own namespaces,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// if you don't want this suffix, you can refer to [isIsolationEnabled].</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> packageName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"com.example.mydemo"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated class name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is use the name of the current project.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The "Properties" is a fixed suffix to distinguish it from your own class names.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> className </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"MyDemo"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to use Kotlin language generation.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enabled by default, when enabled will generate Kotlin code,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// disabled will generate Java code.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: This option will be disabled when this project is a pure Java project.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> useKotlin </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to enable restricted access.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Disabled by default, when enabled will add the `internal` modifier to</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// generated Kotlin classes or remove the `public` modifier to generated Java classes.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> isRestrictedAccessEnabled </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">false</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to enable code isolation.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enabled by default, when enabled will generate code in an</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// isolated package suffix "generated" to avoid conflicts with other projects that</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// also use or not only Gropify to generate code.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: If you disable this option, please make sure that there are no other projects</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// that also use or not only Gropify to generate code to avoid conflicts.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> isIsolationEnabled </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="kotlin-multiplatform-project-configuration" tabindex="-1"><a class="header-anchor" href="#kotlin-multiplatform-project-configuration" aria-hidden="true">#</a> Kotlin Multiplatform Project Configuration</h3><p>The content in this configuration block only takes effect for projects with the Kotlin Multiplatform plugin.</p><p>The configuration here includes the configuration in <code>common</code>, and you can override it.</p><blockquote><p>The following example</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:#DCBDFB;">kmp</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated directory path.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// You can fill in the path relative to the current project.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Format example: "path/to/your/src/main", the "src/main" is a fixed suffix.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is "build/generated/gropify/src/main".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// We recommend that you set the generated path under the "build" directory,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// which is ignored by version control systems by default.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> generateDirPath </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"build/generated/gropify"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom deployment `sourceSet` name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// If your project source code deployment name is not default, you can customize it here.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is "commonMain".</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> sourceSetName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"commonMain"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated package name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Kotlin Multiplatform projects use the `project.group` of the project settings</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// by default.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// In a Kotlin Multiplatform project, if the AGP plugin is also applied,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// the `namespace` will still be used as the package name by default.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The "generated" is a fixed suffix that avoids conflicts with your own namespaces,</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// if you don't want this suffix, you can refer to [isIsolationEnabled].</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> packageName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"com.example.mydemo"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Custom generated class name.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Default is use the name of the current project.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// The "Properties" is a fixed suffix to distinguish it from your own class names.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> className </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"MyDemo"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to enable restricted access.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Disabled by default, when enabled will add the `internal` modifier to</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// generated Kotlin classes.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> isRestrictedAccessEnabled </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">false</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Whether to enable code isolation.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Enabled by default, when enabled will generate code in an</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// isolated package suffix "generated" to avoid conflicts with other projects that</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// also use or not only Gropify to generate code.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">//</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// - Note: If you disable this option, please make sure that there are no other projects</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// that also use or not only Gropify to generate code to avoid conflicts.</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> isIsolationEnabled </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="usage-examples" tabindex="-1"><a class="header-anchor" href="#usage-examples" aria-hidden="true">#</a> Usage Examples</h2><p>Below is a project's <code>gradle.properties</code> configuration file.</p><blockquote><p>The following example</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.groupName</span><span style="color:#ADBAC7;">=com.highcapable.gropifydemo</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.description</span><span style="color:#ADBAC7;">=Hello Gropify Demo!</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.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 class="line-number"></div></div></div><p>In the build script <code>build.gradle.kts</code>, we can directly use these key-values as shown below.</p><p>Here is an example of the Maven publish configuration section.</p><blockquote><p>The following example</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:#DCBDFB;">publications</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">create</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">MavenPublication</span><span style="color:#ADBAC7;">>(</span><span style="color:#96D0FF;">"maven"</span><span style="color:#ADBAC7;">) {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> groupId </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> gropify.project.groupName</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> version </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> gropify.project.version</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> pom.description.</span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(gropify.project.description)</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">from</span><span style="color:#ADBAC7;">(components[</span><span style="color:#96D0FF;">"java"</span><span style="color:#ADBAC7;">])</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Similarly, you can also call the generated key-values in the current project.</p><blockquote><p>Kotlin</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;"> groupName </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> GropifyDemoProperties.PROJECT_GROUP_NAME</span></span>
|
|
<span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> description </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> GropifyDemoProperties.PROJECT_DESCRIPTION</span></span>
|
|
<span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> version </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> GropifyDemoProperties.PROJECT_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 class="line-number"></div></div></div><blockquote><p>Java</p></blockquote><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;">groupName</span><span style="color:#F69D50;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> GropifyDemoProperties.PROJECT_GROUP_NAME;</span></span>
|
|
<span class="line"><span style="color:#F47067;">var</span><span style="color:#F69D50;"> </span><span style="color:#ADBAC7;">description</span><span style="color:#F69D50;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> GropifyDemoProperties.PROJECT_DESCRIPTION;</span></span>
|
|
<span class="line"><span style="color:#F47067;">var</span><span style="color:#F69D50;"> </span><span style="color:#ADBAC7;">version</span><span style="color:#F69D50;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> GropifyDemoProperties.PROJECT_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 class="line-number"></div></div></div><p>Let's take another example with an Android project.</p><p>In Android projects, many repetitive and fixed properties usually need to be configured, such as <code>targetSdk</code>.</p><blockquote><p>The following example</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.namespace</span><span style="color:#ADBAC7;">=com.highcapable.gropifydemo</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.appName</span><span style="color:#ADBAC7;">=Gropify Demo</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.compileSdk</span><span style="color:#ADBAC7;">=36</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.targetSdk</span><span style="color:#ADBAC7;">=36</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.minSdk</span><span style="color:#ADBAC7;">=26</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>When you set <code>useTypeAutoConversion = true</code>, <code>Gropify</code> will try to convert it to the corresponding type during the entity class generation process under the default configuration.</p><p>For example, the key-values used below can be identified as string and integer types, which can be directly used by the project configuration.</p><blockquote><p>The following example</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:#DCBDFB;">android</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> namespace </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> gropify.project.namespace</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> compileSdk </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> gropify.project.compileSdk</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">defaultConfig</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> minSdk </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> gropify.project.minSdk</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> targetSdk </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> gropify.project.targetSdk</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>When you set <code>manifestPlaceholders = true</code>, Gropify will automatically synchronize these properties' key-values to <code>manifestPlaceholders</code> in the android configuration method block.</p><p>You can then use these placeholders directly in <code>AndroidManifest.xml</code>.</p><blockquote><p>The following example</p></blockquote><div class="language-xml line-numbers-mode" data-ext="xml"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#ADBAC7;"><</span><span style="color:#8DDB8C;">manifest</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">xmlns:android</span><span style="color:#ADBAC7;">=</span><span style="color:#96D0FF;">"http://schemas.android.com/apk/res/android"</span><span style="color:#ADBAC7;">></span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> <</span><span style="color:#8DDB8C;">application</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">android:label</span><span style="color:#ADBAC7;">=</span><span style="color:#96D0FF;">"${project.appName}"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">android:icon</span><span style="color:#ADBAC7;">=</span><span style="color:#96D0FF;">"@mipmap/ic_launcher"</span><span style="color:#ADBAC7;">></span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </</span><span style="color:#8DDB8C;">application</span><span style="color:#ADBAC7;">></span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"></</span><span style="color:#8DDB8C;">manifest</span><span style="color:#ADBAC7;">></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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>You no longer need to use <code>buildConfigField</code> to add code to <code>BuildConfig</code>. With the property key-value code generated by <code>Gropify</code>, you can manage your project more flexibly.</p><p>You can also use interpolation <code>${...}</code> in property key-values to reference each other's content, but recursive references are not allowed.</p><p>When you set <code>useValueInterpolation = true</code>, <code>Gropify</code> will automatically merge these referenced contents to the corresponding positions.</p><blockquote><p>The following example</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.name</span><span style="color:#ADBAC7;">=MyDemo</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.developer.name</span><span style="color:#ADBAC7;">=myname</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.url</span><span style="color:#ADBAC7;">=https://github.com/${project.developer.name}/${project.name}</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 class="line-number"></div></div></div><p>If you add <code>GropifyLocation.SystemEnv</code> to <code>locations</code>, you can also directly reference system environment variables.</p><blockquote><p>The following example</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:#768390;"># Use the $USER environment variable in Linux or macOS systems to get the current username.</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.developer.name</span><span style="color:#ADBAC7;">=${USER}</span></span>
|
|
<span class="line"><span style="color:#768390;"># Assume you have a system environment variable called SECRET_KEY (PLEASE BE SURE TO BE SAFE).</span></span>
|
|
<span class="line"><span style="color:#F47067;">project.secretKey</span><span style="color:#ADBAC7;">=${SECRET_KEY}</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 class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container warning"><p class="custom-container-title">Notice</p><p>This feature is provided by <code>Gropify</code>. Native <code>gradle.properties</code> does not support this feature.</p><p>The interpolated content is searched and replaced from top to bottom through the <code>locations</code> hierarchy. If there are duplicate key names, the last found content will be used for replacement.</p></div><h2 id="possible-issues" tabindex="-1"><a class="header-anchor" href="#possible-issues" aria-hidden="true">#</a> Possible Issues</h2><p>If your project only has a root project and no subprojects are imported, and the extension method cannot be generated normally at this time, you can migrate your root project to a subproject and import this subproject in <code>settings.gradle.kts</code>, which can solve this problem.</p><p>We generally recommend categorizing the functions of the project, with the root project only used to manage plugins and some configurations.</p><h2 id="limitations" tabindex="-1"><a class="header-anchor" href="#limitations" aria-hidden="true">#</a> Limitations</h2><p><code>Gropify</code> cannot generate extension methods in <code>settings.gradle.kts</code> because it is upstream of <code>Gropify</code>.</p></div><!--[--><!--]--></div><footer class="page-meta"><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/HighCapable/Gropify/edit/main/docs-source/src/en/guide/quick-start.md" rel="noopener noreferrer" target="_blank" aria-label="Edit this page on GitHub"><!--[--><!--]--> Edit this page on GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: qzmmcn@163.com">fankesyooni</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav"><p class="inner"><span class="prev"><a href="/Gropify/en/guide/home.html" class="" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a></span><!----></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
<script type="module" src="/Gropify/assets/app-aH6YcK-Q.js" defer></script>
|
|
</body>
|
|
</html>
|