Grails BuildConfig.groovy, разница между сборкой, компиляцией и временем выполнения? - PullRequest
62 голосов
/ 06 января 2012

В чем разница между 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 ]

99 голосов
/ 06 января 2012
  • build - зависимость, которая нужна только процессу сборки
  • runtime - зависимость, необходимая для запуска приложения, но не для его компиляции, например. Реализация JDBC для конкретного поставщика базы данных. Обычно это не требуется во время компиляции, поскольку код зависит только от API JDBC, а не от конкретной его реализации
  • compile - зависимость, необходимая как во время компиляции, так и во время выполнения. Это самый распространенный случай

Есть несколько других областей зависимостей:

  • test - зависимость, которая нужна только тестам, например, библиотека для проверки / тестирования
  • provided - зависимость, которая необходима во время компиляции, но не должна быть упакована вместе с приложением (обычно потому, что она предоставляется контейнером). Примером является сервлет API
5 голосов
/ 28 марта 2012

Кажется, что два предыдущих ответа противоречат различию между компиляцией и сборкой.Я считаю, что сборка - это область действия, включающая grails compile и grails run-app, в то время как компиляция - только первая.

2 голосов
/ 13 сентября 2015

Начиная с Grails 3, зависимости управляются Gradle.Файл grails-app/conf/BuildConfig.groovy был заменен файлом build.gradle в корне проекта.

Руководство пользователя Grails объясняет, как устанавливать зависимости grails с помощью gradle иобратитесь к связанной документации Gradle для более подробной информации по этой теме.

1 голос
/ 06 января 2012

Несколько команд grails помогают проиллюстрировать разницу. Рассмотрим grails run-app и grails compile. grails compile является этапом компиляции и будет включать зависимости времени компиляции. grails run-app - шаг выполнения и будет включать зависимости времени выполнения. Зависимости сборки - это все, что вам может понадобиться для запуска любой из этих команд, например, пользовательский сценарий, который подключается к некоторым событиям сборки.

Таким образом, вы выбрали бы тот, который лучше всего подходит, когда вам необходимо убедиться, что зависимость включена.

...