Gradle - Управление зависимостями

Сценарий сборки Gradle определяет процесс сборки проектов; каждый проект содержит некоторые зависимости и некоторые публикации. Зависимости означают вещи, которые поддерживают создание вашего проекта, такие как требуемый файл JAR из других проектов и внешние JAR, такие как JDBC JAR или Eh-cache JAR в пути к классам. Публикации означают результаты проекта, такие как файлы тестовых классов и файлы сборки, такие как файлы войны.

Почти все проекты не самодостаточны. Им нужны файлы, созданные другими проектами, для компиляции и тестирования исходных файлов. Например, чтобы использовать Hibernate в проекте, вам необходимо включить несколько Hibernate JAR в путь к классам. Gradle использует специальный скрипт для определения зависимостей, которые необходимо загрузить.

Gradle позаботится о создании и публикации результатов где-нибудь. Публикация основана на задаче, которую вы определяете. Он может захотеть скопировать файлы в локальный каталог или загрузить их в удаленный репозиторий Maven или lvy, или вы можете использовать файлы из другого проекта в той же многопроектной сборке. Мы можем назвать процесс публикации задачи публикацией.

Объявление ваших зависимостей

Конфигурация зависимостей - это не что иное, как определение набора зависимостей. Вы можете использовать эту функцию, чтобы объявить внешние зависимости, средства, которые вы хотите загрузить из сети. Это определяет различные стандарты, например следующие.

apply plugin: 'java'

repositories {
   mavenCentral()
}

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

Конфигурации зависимостей

Конфигурация зависимостей - это не что иное, как определение набора зависимостей. Вы можете использовать эту функцию для объявления внешних зависимостей, которые вы хотите загрузить из Интернета. Это определяет следующие различные стандартные конфигурации.

  • Compile - Зависимости, необходимые для компиляции исходного кода проекта.

  • Runtime- Зависимости, требуемые производственными классами во время выполнения. По умолчанию также включает зависимости времени компиляции.

  • Test Compile- Зависимости, необходимые для компиляции тестового источника проекта. По умолчанию он включает скомпилированные производственные классы и зависимости времени компиляции.

  • Test Runtime- Зависимости, необходимые для запуска тестов. По умолчанию он включает зависимости среды выполнения и тестовой компиляции.

Внешние зависимости

Внешние зависимости - это один из видов зависимостей. Это зависимость от некоторых файлов, созданных вне текущей сборки и хранящихся в каком-либо репозитории, таком как Maven central, или корпоративный репозиторий Maven или lvy, или каталог в локальной файловой системе.

Следующий фрагмент кода предназначен для определения внешней зависимости. Используйте этот код вbuild.gradle файл.

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

Внешняя зависимость объявляет внешние зависимости, а форма быстрого доступа выглядит как «группа: имя: версия».

Репозитории

При добавлении внешних зависимостей. Gradle ищет их в репозитории. Репозиторий - это просто набор файлов, упорядоченных по группам, имени и версии. По умолчанию Gradle не определяет никаких репозиториев. Мы должны явно определить по крайней мере один репозиторий. Следующий фрагмент кода определяет, как определить репозиторий maven. Используйте этот код вbuild.gradle файл.

repositories {
   mavenCentral()
}

Следующий код предназначен для определения удаленного maven. Используйте этот код вbuild.gradle файл.

repositories {
   maven {
      url "http://repo.mycompany.com/maven2"
   }
}

Публикация артефактов

Конфигурации зависимостей также используются для публикации файлов. Эти опубликованные файлы называются артефактами. Обычно мы используем плагины для определения артефактов. Однако вам нужно указать Gradle, где публиковать артефакты. Вы можете добиться этого, подключив репозитории к задаче загрузки архивов. Взгляните на следующий синтаксис для публикации репозитория Maven. Во время выполнения Gradle сгенерирует и загрузит Pom.xml в соответствии с требованиями проекта. Используйте этот код вbuild.gradle файл.

apply plugin: 'maven'

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: "file://localhost/tmp/myRepo/")
      }
   }
}