如何在Gradle强制重新配置项目?

如何在Gradle强制重新配置项目?,gradle,Gradle,我有一个build.gradle文件,它调用一些SVNKit东西来导出构成gradle多项目的一些目录 我有一个任务专门做这件事,看起来像这样: task checkoutIntoDir() << { mkdir 'dirForSvnProjects_2014_07_17_19_50' // timestamp not hard-coded ;) // prompt for username/password // run svn export which places

我有一个build.gradle文件,它调用一些SVNKit东西来导出构成gradle多项目的一些目录

我有一个任务专门做这件事,看起来像这样:

task checkoutIntoDir() << {
  mkdir 'dirForSvnProjects_2014_07_17_19_50' // timestamp not hard-coded ;)
  // prompt for username/password
  // run svn export which places projects in dirForSvnProjects_2014_07_17_19_50
}
def myBuildDir

task createDir << {
  def nowDate = String.format('%tY_%<tm_%<td_%<tH_%<tM',Calendar.instance)
  myBuildDir= "_build_$nowDate"
  mkdir myBuildDir
}

task checkoutIntoDir(dependsOn: createDir) << {
  // prompt for username/password
  // run svn export which places projects in myBuildDir
}

但当任务到达根项目时,它说在根项目中找不到任务“buildMyProj”。现在,如果我取出任务依赖项
checkoutitodir
,并在开始构建之前在那里的目录上运行它,它就可以正常工作了。我猜我需要运行某种“重新配置”来让项目意识到新的gradle项目,在
dirForSvnProjects\u 2014\u 07\u 17\u 19\u 50

我终于找到了答案

这实际上与我设置变量的方式有关,而与Gradle无关

我定义了一个
createDir
任务,该任务设置了一个在脚本的“根”级别定义(但未设置)的变量。它看起来像这样:

task checkoutIntoDir() << {
  mkdir 'dirForSvnProjects_2014_07_17_19_50' // timestamp not hard-coded ;)
  // prompt for username/password
  // run svn export which places projects in dirForSvnProjects_2014_07_17_19_50
}
def myBuildDir

task createDir << {
  def nowDate = String.format('%tY_%<tm_%<td_%<tH_%<tM',Calendar.instance)
  myBuildDir= "_build_$nowDate"
  mkdir myBuildDir
}

task checkoutIntoDir(dependsOn: createDir) << {
  // prompt for username/password
  // run svn export which places projects in myBuildDir
}

这就是我为了简洁而省去片段的原因

不确定这将如何导致您的问题,但您编写的CheckOutitToDir将在配置时运行,而不是在执行时。您确定您的CheckOutitToDir任务正在工作吗?如果删除依赖项,然后运行“gradle Checkoutitodir buildCheckedOuteEquipment”,会发生什么情况?我回到办公桌后会尝试,谢谢。很抱歉出错,但我确实有