我想在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'
}
答案 0 :(得分:0)
最后,解决方案很简单:
www\\vendor\\bin\\propel model:build --output-dir="www\\propel\\model""'
仅需删除结尾处的双引号之一。