0

我有一个由 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?

4

2 回答 2

2

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

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

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

问候,勒内

于 2012-06-04T23:13:31.027 回答
1

应该按照此处的说明进行

task copyJs << {

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

    copy {
        into 'src/main/webapp/js'
        from('js') {
            include '**/*.js'
        }
    }
}
于 2012-06-04T14:40:58.560 回答