Gradle依存ローカルaarパッケージ
2852 ワード
文書ディレクトリ1.ローカルウェアハウス方式(推奨) 1.ローカルaarウェアハウス の生成 2.ローカルaar倉庫に依存 2.aarパケットをコンパイル生成する方法 一.ローカル倉庫の方式(推奨)
1.ローカルaar倉庫の生成
step1.プロジェクトでgradleにgradleコードを追加
例:library/build.gradle
step2. Android Studio実行uploadArchives Task生成ローカルウェアハウス
2.ローカルaar倉庫に依存
step1. 使用するプロジェクトのルートディレクトリbuild.gradleにローカルウェアハウスアドレスを追加
step2. 必要なMoudle build.gradleで
注意:依存が伝達される場合、transitive=trueは次のようになります.
二.コンパイルaarパッケージの生成方法
step1.プロジェクトModuleノードでbuild Taskを実行するxxx-debugを生成する.aarとxxx-release.aarパッケージ
step2.aarパッケージを使用するプロジェクトlibsの下にコピーし、build.gradleで
またはaarパッケージをプロジェクトルートディレクトリreposの下にコピーし、プロジェクトルートディレクトリbuild.gradleで倉庫を宣言する
step3. 必要なMoudle build.gradleで依存を宣言する
まとめ:2つの方法を比較すると、2つ目の方法には弊害があります.もし私たちのaarパッケージに3つのライブラリに依存している場合、例えばRxjava、EventBusなどがあります.このとき,三方依存は我々のaarパケットにコンパイルされず,aarパケットを使用すると問題がある.この場合、私たちは最初の方法(ローカル倉庫の方法)しか採用できません.もし私たちのaarパケットが完全に3つのライブラリに依存していないならば、私たちは第2の方法(aarパケットをコンパイルして生成する方法)を採用することができて、簡単で速いです.
1.ローカルaar倉庫の生成
step1.プロジェクトでgradleにgradleコードを追加
例:library/build.gradle
apply plugin: 'com.android.library'
apply plugin: 'maven'
android{...}
dependencies{...}
group = 'com.pm.qrcode'
version = '0.1.1'
uploadArchives {
repositories {
mavenDeployer {
// :
/* repository(url: "http://www.xxx.com/repos") {
authentication(userName: "admin", password: "admin")
}*/
// Maven
repository(url: uri('../repositories'))
// pom.groupId = group
pom.version = version
pom.artifactId = 'qrcode'
}
}
}
step2. Android Studio実行uploadArchives Task生成ローカルウェアハウス
2.ローカルaar倉庫に依存
step1. 使用するプロジェクトのルートディレクトリbuild.gradleにローカルウェアハウスアドレスを追加
buildscript {
repositories {
maven {
url("file://" + project.rootDir.absolutePath + "/repositories")
}
google()
jcenter()
}
}
allprojects {
maven {
url("file://" + project.rootDir.absolutePath + "/repositories")
}
google()
jcenter()
}
}
step2. 必要なMoudle build.gradleで
implementation 'com.pm.qrcode:qrcode:0.1.1'
注意:依存が伝達される場合、transitive=trueは次のようになります.
implementation('com.pm.hybridsdk:hybridsdk:0.0.1') {
transitive = true
}
二.コンパイルaarパッケージの生成方法
step1.プロジェクトModuleノードでbuild Taskを実行するxxx-debugを生成する.aarとxxx-release.aarパッケージ
step2.aarパッケージを使用するプロジェクトlibsの下にコピーし、build.gradleで
android{...}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies{
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
}
またはaarパッケージをプロジェクトルートディレクトリreposの下にコピーし、プロジェクトルートディレクトリbuild.gradleで倉庫を宣言する
buildscript {
repositories {
google()
jcenter()
flatDir {
dirs '../repos'
}
}
}
allprojects {
google()
jcenter()
flatDir {
dirs '../repos'
}
}
}
step3. 必要なMoudle build.gradleで依存を宣言する
implementation(name: 'hybridsdk-release', ext: 'aar')
まとめ:2つの方法を比較すると、2つ目の方法には弊害があります.もし私たちのaarパッケージに3つのライブラリに依存している場合、例えばRxjava、EventBusなどがあります.このとき,三方依存は我々のaarパケットにコンパイルされず,aarパケットを使用すると問題がある.この場合、私たちは最初の方法(ローカル倉庫の方法)しか採用できません.もし私たちのaarパケットが完全に3つのライブラリに依存していないならば、私たちは第2の方法(aarパケットをコンパイルして生成する方法)を採用することができて、簡単で速いです.