Модель Propel: сборка с ошибкой Gradle, пока «Файл существует» - PullRequest
0 голосов
/ 11 октября 2018

Я хочу использовать propel с gradle и получил эту ошибку при выполнении:

В строке 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

При запуске задачи Propel Gradle генерируется папка Base и Map с первым классом внутри, но когда приходитко второму классу он разрывается с исключением «Файл существует». Мне интересно, что он прекрасно работает, вызывая пакет из проводника или из gradle:

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

1 Ответ

0 голосов
/ 11 октября 2018

Наконец, решение было простым:

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

Нужно было удалить только одну из двойных кавычек в конце.

...