php - Propel模型: “File exists”时使用gradle构建失败

标签 php gradle propel

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

In Filesystem.php line 104:

Failed to create "www\propel\model"\Base": mkdir(): File exists.



在使用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""'

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

关于php - Propel模型: “File exists”时使用gradle构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52755335/

相关文章:

php - 蓝色边框由于关注ckeditor,如何去除它

PHP将日期时间与时间相加并获取时差

android - 构建到 Android 时解决 gradle 依赖关系的问题

mysql - 插入自定义标准

php - 如何在php中检测用户是否已注销?

java - Gradle没有下载Jax RS库

java - Gradle 同步失败版本不支持 ModelBuilder API,而版本为 3.3

php - 如何为 Propel 中的时间戳列指定 defaultValue 为 "now"?

mysql - 解决此推进 "Cannot redeclare function"错误的最正确方法是什么?

php运行一次并在mysql数据库中插入两次