Области зависимости Gradle - PullRequest
1 голос
/ 05 апреля 2019

Я немного экспериментировал с Gradle, но, поскольку я в основном пользователь Maven, некоторые области зависимостей меня смущают ...

Некоторые идентичны Maven:

compile -> compile
runtime -> runtime
compileOnly -> provided

, но я такжевстреча implementation, которая звучит как parent элемент Maven POM, но, опять же, тоже нет.

Может кто-нибудь объяснить мне, что такое implementation, и некоторые другие, если они существуют, и я не упомянул здесь (тестовые версии выше понятны, объяснять не нужно)?

И если implementation не похож на родительский в Maven, как мы можем получить эффект POM для Maven в Gradle?

1 Ответ

0 голосов
/ 08 апреля 2019

Как прокомментировано, пожалуйста, посмотрите документацию или даже эту недавнюю веб-трансляцию (заявление об отказе: я совместно представляю эту веб-трансляцию)

Что касается сравнения в Maven, то перенос / обучение из Maven в Gradle выглядит так же, как и переход от subversion к git: хотя некоторый словарный запас такой же, понимание более поздней модели помогает больше, чем сравнение.

Короче говоря:

  • Не используйте compile или runtime в Gradle, они устарели.
  • implementation относится к зависимостям, которые требуются для компиляции и запуска вашего приложения.
  • compileOnly и runtimeOnly должны быть понятны в контексте вышеупомянутого
  • Плагин java-library добавляет конфигурацию api, зарезервированную для зависимостей, которые потребуются пользователям вашей библиотеки для компиляции .

Не существует прямого эквивалента родительскому пому Maven. Независимо от того, говорите ли вы о плагинах, конфигурации сборки или зависимостях, способ централизации отличается. Посмотрите документацию по многопроектному авторингу .

...