記事ディレクトリ
Gradle プラグイン開発の開発学習、リポジトリのローカル ウェアハウスの公開
1.Gradleプラグイン
特定のビルド機能を提供する
コードの再利用性の向上
バイナリプラグイン
スクリプトプラグイン
プロジェクトの下の build.gradle ファイル内
バイナリプラグイン
// Top-level build file where you can add configuration options common to all sub-projects/modules.
//声明插件ID与版本号
plugins {
id 'com.android.application' version '7.4.2' apply false
id 'com.android.library' version '7.4.2' apply false
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
id 'org.jetbrains.kotlin.jvm' version '1.8.20' apply false
}
プラグインを適用する
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
スクリプト プラグイン、新しい Gradle スクリプト ファイルを作成する
このプラグインの関連付けをサブプロセスに追加します
2. Gradleプラグイン開発、ページルーティング
ページのマーク付け、ページの収集、ドキュメントの生成、マッピングの登録、ページを開く
1.buildSrc
構成
//引用groovy插件,编译插件工程中的代码
apply plugin: 'groovy'
//声明仓库的地址
repositories {
mavenCentral()
}
//声明依赖的包
dependencies{
implementation gradleApi()
implementation localGroovy()
}
2. プラグインの操作
このディレクトリを手動で作成します
構成
アプリモジュールでテストしてみる
正しい出力
3. パラメータの設定
以下に類似したパラメータ設定があります
android {
namespace 'com.qfh.common'
compileSdk cfg.android.compileSdk
defaultConfig {
applicationId cfg.applicationId.app
minSdk cfg.android.minSdk
targetSdk cfg.android.targetSdk
versionCode cfg.android.versionCode
versionName cfg.android.versionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
}
拡張機能の定義、拡張機能の登録、拡張機能の使用、拡張機能の取得
新しいクラスを定義する
拡張機能、コールバックを登録します。
パラメータを設定すると、ユーザーが設定したパラメータ値が上記のコールバックで取得されます。
3. Gradleプラグインの簡易版をリリース
3.1 ローカルウェアハウスに公開する
//调用maven插件,用于发布
apply plugin: 'maven-publish'
publishing {
repositories {
maven {
//设置发布路径为工程根目录下面的 repo文件夹
url = uri('../repo')
}
}
publications {
maven(MavenPublication) {
//设置groupId,通常为包名
groupId = 'com.qfh.route'
//设置artifactId,为当前插件的名称
artifactId = 'router-gradle-plugin'
version = '1.0.0'
}
}
}
buildSrc のコピーをコピーし、プラグインの名前を router-gradle-plugin に変更します。buildSrc でプラグインを直接公開することはできません。
このコピーしたサブプロジェクトをプロジェクトのルートディレクトリに登録します
[公開] をダブルクリックしてローカル ウェアハウスに公開します
最後に、フォルダー ディレクトリがもう 1 つあります