BuildConfig.groovy
(1.3.7)のbuild
、runtime
、およびcompile
の違いは何ですか
grails.project.dependency.resolution = {
plugins {
build "acme:acme-cache:latest.integration"
}
dependencies {
build "com.foo.bar:foobar:1.0.5"
runtime "org.Apache.httpcomponents:httpclient:4.0.3"
compile("com.thoughtworks.xstream:xstream:1.3.1")
}
}
build
-ビルドプロセスでのみ必要な依存関係runtime
-アプリケーションを実行するために必要ですが、コンパイルはしない依存関係。特定のデータベースベンダーのJDBC実装。コードはその特定の実装ではなくJDBC APIのみに依存するため、通常はコンパイル時にこれは必要ありません。compile
-コンパイル時と実行時の両方で必要な依存関係。これは最も一般的なケースです他にもいくつかの依存関係スコープがあります。
test
-テストでのみ必要な依存関係。モック/テストライブラリprovided
-コンパイル時に必要ですが、アプリにパッケージ化しないでください(通常はコンテナによって提供されるため)。例はサーブレットAPIです以前の2つの答えは、コンパイルとビルドの違いについて矛盾しているようです。ビルドはgrails compile
とgrails run-app
を含むスコープですが、コンパイルは前者だけです。
Grails 3から、依存関係はGradleによって管理されます。 grails-app/conf/BuildConfig.groovy
ファイル 置き換えられましたbuild.gradle
ファイルはプロジェクトのルートにあります。
Grailsユーザーガイド gradleでgrailsの依存関係を設定する方法を説明する と、このトピックの詳細については 関連するGradleドキュメント を参照してください。
いくつかのgrailsコマンドが違いを説明するのに役立ちます。 grails run-app
およびgrails compile
。 grails compile
はコンパイル手順であり、コンパイル時の依存関係が含まれます。 grails run-app
は実行ステップであり、実行時の依存関係が含まれます。ビルドの依存関係は、これらのコマンドのいずれかを実行するために必要となる可能性のあるものです。たとえば、いくつかのビルドイベントにフックするカスタムスクリプトなどです。
したがって、依存関係が含まれていることを確認する必要がある場合は、最適なものを選択します。