我们正在使用gradle构建我们的一个应用程序,并且我希望在config文件夹中包含一个不是运行时依赖项的外部jar。该jar是应用程序安装的一部分,它包含一些自定义的ant任务。
我们的构建脚本依赖关系如下所示:
buildscript {
...
dependencies {
classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1'
classpath 'my-group:custom-tasks:1.2.3'
}
}
如何访问custom-task-1.2.3.jar
并将其复制到某个文件夹中,以便将其包含在我的发行版中?如下所示:
task copyCustomTasks {
doLast {
copy {
// This below is a make up to express what I want
from buildscript.dependencies
include 'custom-tasks*.jar'
into "$buildDir/config"
}
}
}
如果这不是一种做事方式,请告诉我我有哪些替代方案。
提前感谢您的帮助。
更新 我通过创建额外的配置以不同的方式解决了我的问题。但是,我仍然有兴趣了解如何在运行时访问构建脚本依赖项。再次感谢您的投入。
configurations {
install {
description = "application install classpath"
transitive = true
}
}
...
dependencies {
...
install('my-group:custom-tasks:1.2.3')
...
}
...
task copyInstallDeps {
doLast {
copy {
from configurations.install
into "$buildDir/config"
}
}
}
答案 0 :(得分:4)
你非常接近:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.guava:guava:18.0'
}
}
task copyLibs(type: Copy) {
from buildscript.configurations.classpath
into 'lib'
}