Androidプロジェクト、特にAndroid Studio
Dependencies
には3つのスコープオプションCompile/Provided/APKがあります。
それぞれを選択することの効果は何ですか、いつ使用する必要がありますか?その名のとおり。
編集:
「 'provided'および 'package'スコープを適切に処理して、本来行うべきことを実行します。'provided 'および' package 'はAndroid Librariesでは使用できません。エラーが生成されます。 "..これは http://tools.Android.com/tech-docs/new-build-system からです
provided
-コンパイル時のみの依存関係package
-パッケージ時のみの依存関係compile
-コンパイル時およびパッケージ時の依存関係provided
は、一般的に注釈処理ベースのライブラリに使用されます。通常、これらのライブラリは、「注釈」と「コンパイラ」という2つの成果物に分けられます。 「コンパイラ」はprovided
依存関係です。これはアプリケーションで使用する必要がなく、コンパイルのみに使用する必要があるためです。 「注釈」はcompile
依存関係です-アプリケーションコードで使用されるため、コンパイルされます。または、生成されたコードには追加の依存関係が必要ですが、アプリケーションには必要ありません。例えば。短剣の依存関係の構成:
compile 'com.squareup.dagger:dagger:1.2.2'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
これらのプロパティは maven
scopes に由来します。
これらは、ビルドプロセスの各ステップで特定の依存関係を処理する方法を単に示しています。
compile
-デフォルトのアプローチ。これは、コンパイル時にすべての依存関係が利用可能であることを意味します。コンパイルの依存関係は、プロジェクトのすべてのクラスパスで利用できます。さらに、これらの依存関係は依存プロジェクトに伝播されます。通常、実行時にはコンパイル時の依存関係が必要です。
package
-アプリケーションを構築するための追加の構成を宣言します。ビルドプロセスに機能を追加するプラグインをリストできます。
provided
-ランタイム環境にこれらの依存関係が含まれていることを意味します。たとえば、Android.jar
表示されるライブラリ内部Java.lang.RuntimeException: Stub!
すべてのメソッド本体。
provided
およびpackage
は、Android Librariesと一緒に使用できず、エラーを生成します。
sourceSet
は次のようになります。
ビルドシステムの詳細: https://www.youtube.com/watch?v=LCJAgPkpmR
Gradleに関する素晴らしい記事: http://www.sinking.in/blog/provided-scope-in-gradle/
Xavierは here[〜#〜] apk [〜#〜]スコープについて話します。
Androidプラグイン、ランタイムの同等の(ソート))はapkと呼ばれます。
依存関係{apk files( 'libs/foo.jar')}
パッケージ化されるだけで、コンパイルクラスパスには含まれません。