Gradle copy构建脚本依赖关系到文件夹

时间:2015-08-10 03:00:48

标签: gradle

我们正在使用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"
        }
    }
}

1 个答案:

答案 0 :(得分:4)

你非常接近:

buildscript {
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath 'com.google.guava:guava:18.0'
   }
}

task copyLibs(type: Copy) {
   from buildscript.configurations.classpath
   into 'lib'
}