推进模型:“文件存在”时gradle构建失败

时间:2018-10-11 08:15:45

标签: php gradle propel

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

  

在Filesystem.php第104行中:

     

无法创建“ www \ propel \ model” \ Base”:mkdir():文件存在。

在使用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文件夹,但是当进入第二类时,它将以“文件存在”中断。例外。我想知道,通过从资源管理器或gradle调用批处理,效果很好:

task propel(type: Exec) {
    commandLine 'cmd', '/c', 'init-propel.bat'
}

1 个答案:

答案 0 :(得分:0)

最后,解决方案很简单:

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

仅需删除结尾处的双引号之一。