web-dev-qa-db-ja.com

Android Gradle-compileOnlyの代わりに何を使用しますか?

以下によるとSO post、compileは最近implementationになりました: gradleでの実装とコンパイルの違いは何ですか

私の質問は、compileOnlyの代わりに何を使うべきですか?上記の投稿では、そのgradle構成については取り上げていません。私はまだcompileOnlyを使用できることを知っていますが、すぐに廃止されない推奨構成は何ですか?

..compile..を含むすべての設定が..implementation..に置き換えられるように見えました。 implementationOnlyを試しましたが、Android Studioでは受け入れられませんでした。

27

compileOnlyis置換—廃止予定の同等の構成はprovidedです。 ドキュメント を参照してください。

40
CommonsWare

Project gradleの依存関係は次のように変更する必要があります

dependencies {
    provided 'com.someDependency:api:78'
}

dependencies {
    compileOnly 'com.someDependency:api:78'
}
0
E.N.D

IDE gradleファイルにプロジェクトを追加する自動提案を受け入れる場合、「compile project(path: 'xxx')」が追加されます。それを修正すれば大丈夫です。 。

0
Brian Chu

Gradle 3.0.0のAndroidプラグイン

before-非推奨の構成-provided
after-新しい構成-compileOnly

Gradleは、コンパイルクラスパスのみに依存関係を追加します(ビルド出力には追加されません)。これはAndroidライブラリモジュールを作成していて、コンパイル中に依存関係が必要な場合に便利ですが、実行時に存在することはオプションです。つまり、この構成を使用する場合、ライブラリモジュールには、依存関係が利用可能かどうかを確認するランタイム条件を含める必要があります。その後、動作を適切に変更して、提供されない場合でも機能するようにします。この構成は、提供されたものと同じように動作します(現在は廃止されています)。

0
yoAlex5