【问题标题】:Gradle: How can I copy folder from another project in multi-project script?Gradle:如何从多项目脚本中的另一个项目复制文件夹?
【发布时间】:2014-01-16 03:41:43
【问题描述】:

我有一个多项目脚本:

dependencies {
    compile '...'
    ...

    compile project(':component1')
    runtime project(':component2')
}

我需要将组件1和组件2中的文件夹“bin”复制到当前项目的文件夹“bin”中。

更新:我需要它才能在 Eclipse 中“运行为”->“在服务器上运行”。每个项目都有 Java 代码和 Web UI 文件,并且依赖于工作空间中的其他项目。 “部署程序集”不允许从另一个项目复制已编译的类。

【问题讨论】:

  • gradle中有复制任务。配置并将其连接到您的构建过程中
  • 这是java项目吗?
  • 是的,Java Eclipse 项目。

标签: dependencies gradle multi-project


【解决方案1】:

我不明白您要求完全复制文件夹。

但这里自定义复制任务:

task copyBin(type: Copy) {
    from project(':component1').file('bin')
    into file('bin')
}

并挂钩到您的构建过程:

jar.dependsOn copyBin

【讨论】:

  • 我不想在复制任务中硬编码依赖项,它们已经在“依赖项”中定义了。诀窍是:如何循环复制任务中的依赖关系?
  • 我尝试了以下操作:任务 copyProjectDependenciesToBinFolder(type: Copy) { FileCollection binFoldersFromProjectDependencies = project.configurations .collectMany { it.allDependencies } .findAll { it instanceof ProjectDependency }.file('bin') from binFoldersFromProjectDependencies进入 file('bin') } ,但它给了我错误:Cannot cast object '[]' with class 'java.util.ArrayList' to class 'org.gradle.api.file.FileCollection' 由于:groovy.lang .GroovyRuntimeException:找不到匹配的构造函数:org.gradle.api.file.FileCollection()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多