我有一个由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?
答案 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'
}
}
}