私はAS 3.1を使用していて、優れたプログラマーになり、「コンパイルは廃止されました」という警告をクリアしようとしています。しかし、私はこの特定の.jarがAPIとしてGuavaを公開することを望んでいます。他のプロジェクト(CloudServerApplicationなど)にもGuavaが必要です。しかし、api
またはcompile
の代わりにimplementation
キーワードを使用すると、次のようになります。
>gradlew FrameManager:build
> Configure project :CloudServerApplication
4.4
> Configure project :FrameManager
4.4
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\FrameManager\app\build.gradle' line: 16
* What went wrong:
A problem occurred evaluating project ':FrameManager'.
> Could not find method api() for arguments [com.google.guava:guava:14+] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
エラーをグーグルで試しましたが、有用なものは何も見つかりませんでした。次にどこを見ればいいのか本当にわからない。
私のbuild.gradle:
apply plugin: 'Java'
println GradleVersion.current().getVersion()
repositories {
jcenter()
}
dependencies {
implementation 'org.json:json:20160212'
api 'com.google.guava:guava:14+' //<-- This used to be "compile"
}
引数のメソッドapi()が見つかりませんでした
Java
プラグインには、このメソッドは含まれていません。
あなたはこのプラグインを使用する必要があります:
apply plugin: 'Java-library'
公式ドキュメント で確認できるように:
標準のJavaプラグインとJavaライブラリプラグインの主な違いは、後者がコンシューマに公開されるAPIの概念を導入することです。ライブラリは= Javaコンポーネントは、他のコンポーネントによって使用されることを意図しています。これは、マルチプロジェクトビルドでの非常に一般的な使用例ですが、外部依存関係があるとすぐに。
プラグインは、依存関係を宣言するために使用できる2つの構成を公開します:apiとimplementation。