Gradle эквивалент Maven "копии-зависимости"?
В Maven-land, в любое время я хочу просто вывести транзитивные зависимости для конкретного POM файла, я просто открываю оболочку, перебираюсь туда, где находится POM, и запускаю:
mvn dependency:copy-dependencies
И стрела, Maven создает каталог target/
внутри текущего и помещает все транзитные JAR файлы в это место.
Теперь я пытаюсь переключиться на Gradle, но Gradle, похоже, не имеет такой же функции. Поэтому я спрашиваю: Имеет ли Gradle эквивалент Maven copy-dependencies
?. Если да, может ли кто-нибудь предоставить пример? Если нет, другие разработчики посчитают это полезным вкладом в сообщество Gradle?
Ответы
Ответ 1
В Gradle нет эквивалента copy-dependencies
, но здесь есть задача, которая это делает:
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.inject:guice:4.0-beta5'
}
task copyDependencies(type: Copy) {
from configurations.compile
into 'dependencies'
}
Стоит ли делать вклад? Как видите, это действительно легко сделать, поэтому я так не думаю.
EDIT
От Gradle 4+ это будет:
task copyDependencies(type: Copy) {
from configurations.default
into 'dependencies'
}
Ответ 2
конфигурация зависимостей компиляции устарела в Gradle 4.x. Вы должны заменить это по умолчанию. Таким образом, приведенный выше фрагмент кода становится:
dependencies {
implementation 'com.google.inject:guice:4.0-beta5'
}
task copyDependencies(type: Copy) {
from configurations.default
into 'dependencies'
}
Ответ 3
Это эквивалентная версия Kotlin DSL (добавлен префикс buildDir, чтобы он копировал зависимости в папке сборки):
task("copyDependencies", Copy::class) {
from(configurations.default).into("$buildDir/dependencies")
}