【发布时间】:2017-11-30 07:16:28
【问题描述】:
如何将依赖项复制到 Gradle 中的 Build 目录而不在 build.gradle 中添加任何任务,例如 mvn dependency:copy-dependencies..
【问题讨论】:
标签: gradle build.gradle
如何将依赖项复制到 Gradle 中的 Build 目录而不在 build.gradle 中添加任何任务,例如 mvn dependency:copy-dependencies..
【问题讨论】:
标签: gradle build.gradle
如果你真的不想要这个任务,你可以使用project 对象的copy 方法。
configurations {
compile
}
dependencies {
compile 'someGroup:someArtifact:someVersion'
}
project.copy {
from project.configurations.compile
into project.buildDir
}
这样做的一个显着效果是每次调用都会触发解析,即即使您只想列出任务,也会触发解析和复制。
【讨论】:
subprojects DSL 注入它,如果你有一个rootProject。但对于 1500 多个项目,我想无论如何这将是一项繁重的操作。
compile,例如您可以更改为:from project.configurations.compileOnly
您可以根据配置类型复制依赖项。
这里有一些例子
def runtimeDependencies = "${buildDir}/libs/runtime_dependencies/"
def compileDependencies = "${buildDir}/libs/compile_dependencies/"
task copyRuntimeDeps(type: Copy) {
from configurations.runtime
into "${runtimeDependencies}"
}
task compileDeps(type: Copy) {
from configurations.compile
into "${compileDependencies}"
}
您可以将此任务添加到 build.gradle 并以gradle compileDeps 执行任务
所有可能的配置都可以通过configurations.each { println it.name }查看
【讨论】: