新しいバージョンのgradleでオープンソースライブラリのコンパイル方法が変わったので、ここに記録しておきます。
1. 最初のステップは空のプロジェクトを作成することです
2. これによりアプリプロジェクトが作成されるため、git にアップロードするときにこれは必要ありません。
プロジェクトの settings.gradle ディレクトリにあるアプリ モジュールをコメント アウトすると、アプリ モジュールを手動で削除できます。
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "JitpackTest"
//include ':app' //注释掉module app
include ':mylibrary'
削除後は、以下に示すようにアプリ モジュールが存在しません。
3. Maven Publish プラグインを mylibrary の build.gradle ファイルに追加します。
Maven Publish 公式 Web サイトの使用アドレス:
Maven Publish プラグインの使用 | Android 開発者 | Android 開発者
plugins {
id 'com.android.library'
id 'maven-publish' //添加maven publish插件
}
次に、プラグインによってコンパイルされたタスクを追加します。
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
groupId = 'com.example.mylibrary' //groupId 随便取,jitpack不会使用
artifactId = 'test' //test随便取,jitpack不会使用
version = '1.0.1' //随便取,jitpack不会使用
}
}
}
}
完全な buidle.gradle コードは次のとおりです。
plugins {
id 'com.android.library'
id 'maven-publish'
}
android {
compileSdk 32
defaultConfig {
minSdk 21
targetSdk 32
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
groupId = 'com.example.mylibrary' //groupId 随便取
artifactId = 'test' //test随便取
version = '1.0.1'
}
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
4. ローカル コンパイル: コンパイルには gradlew を使用する必要があるため、このパスに切り替える必要があります。
コンソールで次のコマンドを入力します。
./gradlew publicToMavenLocal (./ 現在のパスの下にあります...)
次の図が表示され、ローカル コンパイルが成功したことが示されます。
5. プロジェクトを Git ウェアハウスまたはコード クラウドにアップロードします
プロジェクト ディレクトリに切り替えて、次のように入力します。
gitの初期化
.git ファイルがすでにローカルに存在する場合は、すでに git が初期化されていることを意味します。
一部の人は、自分のコンピュータでこのファイルを表示できない可能性があります。これは、ファイル管理で「隠しアイテム」を設定しているためです。ファイルを開いてください:
「隠しアイテム」にチェックを入れてください
次に、プロジェクトを git に関連付けます。
git リモート追加オリジン (git ウェアハウスのアドレス)
ローカルプロジェクトをgitにプッシュする
git Push -u オリジンマスター
オンラインでのウェアハウスの作成に関して、次の注意事項があります。以下にマークされているボックスをチェックしないことをお勧めします。チェックしないと、デフォルトでメイン ブランチが作成され、ローカルのデフォルトのマスター ブランチと競合します。
5. git を使用してオンラインでリリース パッケージを作成します。[リリース] をクリックします。
新しいリリースのドラフトをクリックします
パッケージ化されたリリースの選択は、そのタグに基づいて行われます。
次に「リリースを公開」をクリックします。
6. jitpack に移動してコンパイルします
ジットパック | JVM および Android ライブラリを公開する
プロジェクトのアドレスを配置します。
次のアドレスにコピーし、「検索」をクリックしてコンパイルします。
このとき、コンパイル失敗が表示されます。
赤いログをクリックしてエラーの内容を表示します。
これは、gradle プラグインには Java 11 バージョンが必要であることを意味します。
上記の問題を解決するには:
mylibrary の build.gradle ファイルに以下を追加します。
コンパイルオプション { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 }
次に、プロジェクト全体のルート ディレクトリに jitpack.yml ファイルを作成し、その中で java11 を設定し、次の内容を追加します。
before_install:
- sdk install java 11.0.10-open
- sdk use java 11.0.10-open
jdk:
- openjdk11
6. git に送信してリリース バージョンを公開します
7. 次に、jitpack で再コンパイルします。ログ プログラミングが緑色になっていることを確認し、コンパイルが成功したことを示します。[Get it] をクリックします。
使い方を教えてくれます:
これで、ローカル ライブラリの jitpack ウェアハウスへのアップロードが完了しました。
使用:
上の図は古いバージョンの Gradle に基づいていますが、新しいバージョンでは次のように jitpack アドレスが追加されています。
次に、ローカルの依存関係を使用するだけです。
実装「com.github.awoyixiasiquanjia:mylibrary:1.0.1」
依存しているかどうかを確認します。次の図に示すように、正常に依存しています。
困っている友達が比較できるようにプロジェクトを投稿しました。