Gradle依存ローカルaarパッケージ

2852 ワード

文書ディレクトリ
  • 1.ローカルウェアハウス方式(推奨)
  • 1.ローカルaarウェアハウス
  • の生成
  • 2.ローカルaar倉庫に依存
  • 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パケットをコンパイルして生成する方法)を採用することができて、簡単で速いです.