我想在gradle中使用propel并在执行时遇到此失败:



在使用gradle之前,我创建了一个不错的批处理(init-propel.bat):

REM build propel
call www\vendor\bin\propel sql:build      --output-dir="www\propel\sql"
call www\vendor\bin\propel model:build    --output-dir="www\propel\model"
call www\vendor\bin\propel config:convert --output-dir="www\propel"

pause

我的文件系统结构是这样的:
www\vendor\bin\propel    // propel filled by composer
www\propel               // for all outputs
build.gradle
init-propel.bat
schema.xml

现在我不工作的gradle脚本:
task propel() {

}

task propel_sql(type: Exec) {
    commandLine 'cmd', '/c', 'www\\vendor\\bin\\propel sql:build --output-dir="www\\propel\\sql""'
}

task propel_model_clean(type: Delete) {
  delete 'www\\propel\\model\\Base', 'www\\propel\\model\\Map'
}

task propel_model(type: Exec, dependsOn: propel_model_clean) {
    commandLine 'cmd', '/c', 'www\\vendor\\bin\\propel model:build --output-dir="www\\propel\\model""'
}

task propel_config(type: Exec) {
    commandLine 'cmd', '/c', 'www\\vendor\\bin\\propel config:convert --output-dir="www\\propel"'
}

propel.finalizedBy propel_sql
propel.finalizedBy propel_model
propel.finalizedBy propel_config

在开始执行gradle任务时,它将生成内部包含第一类的Base和Map文件夹,但是进入第二类时,它将以“文件存在”中断。异常(exception)。我想知道,通过从资源管理器中调用批处理或通过gradle可以很好地工作:
task propel(type: Exec) {
    commandLine 'cmd', '/c', 'init-propel.bat'
}

最佳答案

最后,解决方案很简单:

www\\vendor\\bin\\propel model:build --output-dir="www\\propel\\model""'

只需删除末尾的双引号之一即可。

10-08 05:01