Как собрать все зависимости в Gradle 7?

С Gradle 6 я использовал следующий фрагмент, чтобы собрать все зависимости в моем проекте (используя project.configurations.runtime) и скопировать их в папку "$buildDir/libs".

tasks.register<Copy>("copyDependenciesToLib") {
    into("$buildDir/libs")
    from(project.configurations.runtime)
    doLast {
        println("copyDependenciesToLib:\n  ${project.configurations.runtime.get().files.joinToString("\n  ") { it.absolutePath }}\n  ->\n  $buildDir/libs")
    }
}

В настоящее время я перехожу на Gradle 7, и IntelliJ говорит мне, что runtime не может быть разрешен, кажется, что он был удален из configuration? Можете ли вы указать мне правильное направление, чтобы воспроизвести поведение приведенного выше скрипта в Gradle 7?


1
52
1

Ответ:

Решено

Я только что нашел ответ сам.

Похожий вопрос был задан здесь.

Gradle удалил конфигурацию времени выполнения в Gradle 7.

Вместо этого можно использовать runtimeClasspath.

Наша задача copy теперь выглядит следующим образом:

tasks.register<Copy>("copyDependenciesToLib") {
    into("$buildDir/libs")
    from(project.configurations.runtimeClasspath)
    doLast {
        println("copyDependenciesToLib:\n  ${project.configurations.runtimeClasspath.get().files.joinToString("\n  ") { it.absolutePath }}\n  ->\n  $buildDir/libs")
    }
}