gradle - 多个模块项目 - ant错误执行dir

时间:2012-06-04 10:57:01

标签: ant gradle antbuilder

我有一个由gradle管理的多模块项目。目录结构如下:

  • 监测
    • 客户端
    • 服务器

当我在监控级别调用'gradle war'时,我获得以下异常:

“监控/ js不存在。”

来自客户端的build.gradle:

task copyJs << {

     'mkdir src/main/webapp/js'.execute()

     def ant = new groovy.util.AntBuilder()
     ant.copy(todir: 'src/main/webapp/js') {
          fileset(dir: 'js') {
               include(name: '**/*.js')
          }
     }
}

发生异常是因为提到的任务是在项目的根级别执行的。如何将其更改为在适当的(客户端)级别执行?如何更改使用的ant任务的basedir?

2 个答案:

答案 0 :(得分:2)

另一种选择是使用复制任务:

task copyJs(type:Copy){
    into('src/main/webapp/js')
    from('js') {
        include '**/*.js'
    }
}

这样做的好处是,如果输出目录尚不存在,则自动创建输出目录。使用复制任务而不是上面的答案中的复制操作的另一个好处是,复制任务支持增量构建执行(最新检查)。

的问候, 勒

答案 1 :(得分:1)

应该按照here

的说明完成
task copyJs << {

    file('src/main/webapp/js').mkdir()

    copy {
        into 'src/main/webapp/js'
        from('js') {
            include '**/*.js'
        }
    }
}