AndroidのGraadleプラグイン(2):依存管理

6330 ワード

本論文は編集を行いました.原文の住所:http://www.cnblogs.com/youxilua/archive/2013/05/22/3092657.html
前言
前回の「Graadleであなたのandroidプログラムを構築する」に続き、今回は前回書いていなかった関連について、どのようにgraldeで依存性のあるプロジェクトを構築して補完しますか?
Graadle androidプラグインの現在の状況
個人的な感覚はまだ話していますが、現在のAndroid gradleプラグインの状況は、もし思いがけないことがあれば最新のはずです.
現在の最新の公式gradle androidは0.4で、Android公式のgraldeプラグインのほかに、開発者が昔に開発したgradleプラグインもありますが、現在はほとんどメンテナンスされていないので、ここではこれらの第三者のgradleプラグインを紹介しません.
Android Graadle 0.4プラグインMaven中央ライブラリは、現在、新たなAndroid gradle構築システムの基本的な改善が知られています.
  • はandroid libraryとandroid libraryの相互参照をサポートしていません.
  • NDK
  • はサポートされていません.
  • アンディライフルパッケージファイル(*.aar)のローカル参照
  • はサポートされていません.
    もし、以上の問題のあなたが会えないなら、これからはgradleでandroidプログラムを構築するのがいいです.
    参照の依存性
    ここで読む前提は前の記事をもう読みました.
    ローカル依存
    gradleは構築ツールとして、ローカルjarパッケージを便利に使用できます.以下は使用コードブロックです.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    dependencies {
    	//     
    	compile files('libs/android-support-v4.jar')
    	//           
    	compile fileTree(dir: 'libs', include: '*.jar')
    }
    
    android {
    	
    }
    
    リモート依存
    gradleは同時にmaven、ivyをサポートしています.ivyは使ったことがないので、mavenを例にとって、以下はコードブロックです.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    repositories {
    	//          
    	mavenCentral()
    	//         maven  
    	maven{
    		url "file://F:/githubrepo/releases"
    	}
    	//         maven 
    	maven{
    		url "https://github.com/youxiachai/youxiachai-mvn-repo/raw/master/releases"
    	}
    }
    
    dependencies {
    	//    : packageName:artifactId:version
    	compile 'com.google.android:support-v4:r13'
    }
    
    android {
    
    }
    
    android library依存
    プロジェクトに対してAndroid libraryを依存するなら、jarに依存するのではなく、ここでgradle mutlit project機構を使用する必要があります.例は繰り返し書きません.前のドイツ人が書いた例を具体的に参考にします.プラグインのバージョンを0.4に変更してください.https://github.com/Goddchen/Android-Gradle-Examples/tree/master/Gradle%20Library%20Projects
    注意android library build.gradleに対して、覚えておいてください.
    appyplugin:'android'をappy pluginに変更しました.'android-library'
    Mutlit project設定
    Mullit projectの設定はgradleで約束されているフォーマットです.もしあるプロジェクトをコンパイルする前に、別のプロジェクトをコンパイルする場合、Mullit projectを使用する必要があります.構造は下図の通りです.
            MyProject/
              | settings.gradle
                + アプリ/
              | build.gradle
                + libries/
                    + lib 1/
                       | build.gradle
                    + lib 2/
                       | build.gradle
    あなたはあなたのworkplaceディレクトリの下にsettings.gradleのファイルを作成し、その中に次のように書く必要があります.
    include':app',':libries:lib 1',':libries:lib 2'
    そうすれば、gradle muttil projectは設定済みです.
    app projectに対してlibriesディレクトリの下のlib 1を適用する必要があるなら、app project build.gradleの中の依存だけに書いてください.
    1
    
    compile project(':libraries:lib1')
    
    完成できます.書き上げたらgradle AndroidDependenciesを使って依存状況をチェックしてもいいです.
    注意すべき点
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    buildscript {
        repositories {
    	    mavenCentral()
    	}
        
        dependencies {
            classpath 'com.android.tools.build:gradle:0.4'
        }
    }
    
    buildscript{}に対して、android gradleはプラグイン環境を事前に配置するために使われています.一般的には依存関係を書いておくことを勧めません.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    buildscript {
        repositories {
    	    mavenCentral()
    	}
        
        dependencies {
            classpath 'com.android.tools.build:gradle:0.4'
        }
    }
    
    repositories {
    	//          
    	mavenCentral()
    	//         maven  
    	maven{
    		url "file://F:/githubrepo/releases"
    	}
    }
    
    dependencies {
    	//    : packageName:artifactId:version
    	compile 'com.google.android:support-v4:r13'
    }
    
    Maven管理ライブラリを使用する
    gradleはカバンの管理に対して、filesystem、maven、ivyをサポートします.ここでは、mavenを利用して、android依存カバンの管理をどのように行うかを重点的に説明します.
    Graadleを利用して現地のMavenライブラリを発表する.
    jarパッケージをどのように包んでmavenに発表するかについては、javaの基本的な知識です.ここでは言いません.
    私たちが今勉強しているのは、例えばandroid libraryバッグをリリースすることです.
    昔は、Android libraryはいいカバン管理方式がありませんでした.簡単に言えば、gradleが現れる前に、政府はAndroid libraryを管理する方式がありませんでした.一般的には他の人のandroid library projectを直接ダウンロードして集めました.
    今、ついに政府は1種のandroid libraryの包装のフォーマットを出して、拡張子は*.aarです.前に述べたように、現在のAndroid gradleプラグインは現地で直接*.aarファイルを使用することをサポートしていませんが、カバン管理庫の引用方式をサポートしています.以下、アンディラヴィに対してどうやって使用するかを説明します.
  • 包装android library
    Android libraryパッケージは直接libraryプロジェクトの下でgradle buildを使えばいいです.その後、build/libsディレクトリの下で2つの*.aarファイルを見ます.一つはreleaseの下で使います.個人の需要を見て使います.ここではreleaseバージョンのaarファイルを使います.
  • スクリプトをリリースします.
    android library projectディレクトリのbuild/libsでbuild.gradleファイルを作成します.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    apply plugin: 'maven'
    
    group = 'com.youxiachai'
    
    artifacts {
    	//  aar    
    	archives file('Gradlelib.aar')
    }
    
    uploadArchives {
    	  repositories {
    		mavenDeployer {
    			repository(url: "file://F:/githubrepo/releases")
    			pom.version  = 'r1'
    			pom.artifactId = 'gradletest'
    		}
    	}
    }
    
    gradle uploadArchivesは、カバンのリリースを完了することができます.
     
  • 以上の2つのステップを完了すると、直接にMavenでjarの依存を引用することができます.アンディラビアの依存を参照してください.