2016-08-03 61 views
0

我有一个项目的结构,像这样:gradle这个“从”不移动文件

root |__ project 1 |__ sub 1 |__ src |__ main |__ config |__ build.gradle |__ project 2 |__ build.gradle |__ ...

我有一个rpm建设任务,通过各子项目进行迭代,并且如果它们包含src/main/config,将它复制到一个目录在转速如此: rootProject.subprojects { from (it.projectDir.name + 'src/main/config' { into 'conf' } }

我已经尝试from参数的不同变化给路径。绝对的,相对的,以project1/sub1/src/main/config/为参数。他们似乎没有工作。任何意见,将不胜感激。

回答

0

恕我直言,你在这里什么都不做:从和到是部分的副本任务不是子项目。

有一个在你的脚本

没有复制任务试着这么做(假设配置是一个文件):

rootProject.subprojects { 
    copy() { 
     from('sub1/src/main') 
     into('/tmp') 
     include('config') 
     // rename { it + ".${name}" } -> config.subproject1 ... bof 
     // better have project.config 
     rename { "${name}.config" } 
    } 
} 

如果一个目录(它可能是这种情况)是这样的:

rootProject.subprojects { 
     copy() { 
      from ('sub1/src/main/config') 
      into("/tmp/${name}-config") 
     } 
    } 

当然改变/tmp来的东西适合你

nb:名称是指项目名称,如果深入,不确定它在某些子任务中不会变得含糊不清。您可以添加:def projectName = name在子项目块的开始,并使用项目名称,而不是

+0

对不起,我应该更清楚,这是所有在复制任务完成。 –

0

我不知道为什么这个工作,但通过改变代码: rootProject.subprojects { from (it.projectDir.name + 'src/main/config' { into 'conf' } } rootProject.subprojects { from (new File(it.projectDir, 'src/main/conf')) { into 'conf' } } 也许有人有更多的经验和专业知识可以解释为什么这个作品

+0

嘿,你是不是在src/main/config之后错过了')'? – Alexiy