Grails BuildConfig.groovy, разница между сборкой, компиляцией и временем выполнения?
в чем разница между build
,runtime
и compile
, в BuildConfig.groovy
(1.3.7)
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")
}
}
4 ответа:
build
- зависимость, которая необходима только для процесса сборкиruntime
- зависимость, которая необходима для запуска приложения, но не компилирует его, например, реализация JDBC для конкретного поставщика базы данных. Обычно это не требуется во время компиляции, поскольку код зависит только от API JDBC, а не от его конкретной реализацииcompile
- зависимость, которая необходима как во время компиляции, так и во время выполнения. Это самое распространенное делоесть несколько других типов зависимостей:
test
- зависимость, которая нужна только тестам, например, издевательская / тестовая библиотекаprovided
- зависимость, которая необходима во время компиляции, но не должна быть упакована с приложением (обычно потому, что она предоставляется контейнером). Примером является сервлет API
Кажется, что 2 предыдущих ответа противоречат различию между компиляцией и сборкой. Я считаю, что build-это область, которая включает
grails compile
иgrails run-app
, в то время как компиляция-это только первое.
из Grails 3 зависимости управляются Gradle. Элемент
grails-app/conf/BuildConfig.groovy
file был заменен наbuild.gradle
файл в корне проекта.руководство пользователя Grails объясните, как установить Grails depencies с помощью gradle и относится к связанная документация Gradle для получения более подробной информации об этой теме.
несколько команд grails помогают проиллюстрировать разницу. Рассмотрим
grails run-app
иgrails compile
.grails compile
является шагом компиляции и будет включать в себя зависимости времени компиляции.grails run-app
- Это шаг выполнения и будет включать в себя зависимости времени выполнения. Зависимости сборки-это все, что может потребоваться для выполнения любой из этих команд, например, пользовательский сценарий, который подключается к некоторым событиям сборки.таким образом, вы выбрали бы тот, который лучше всего подходит, когда вам нужно быть уверенным, что зависимость включенный.