Gradle, запускаемый из www-данных, иногда дает сбой — нет подробного вывода ошибок

Я запускаю сборку Gradle с моего веб-сервера в качестве пользователя www-data с помощью команды

$command = "cd " . $path . "/;./gradlew :app:build  --stacktrace";
exec($command, $output, $error);

Иногда это терпит неудачу с

введите описание изображения здесь

но это все, что я получаю в качестве вывода, без подробной ошибки с номером строки, как если бы я получал прямой вызов скрипта.

Когда я делаю это и запускаю из командной строки, оно работает без ошибок (в этом случае)

Но даже в других случаях, когда оба случая терпят неудачу, нет конкретного выхода с вызовом php.

Я понятия не имею, почему оба способа запуска скрипта ведут себя совершенно по-разному, и я не знаю, как найти ошибку без каких-либо подробностей.

Что там происходит с выходом и как его включить?

0

Решение

Я решил проблему сейчас.

Проблема заключалась в том, что журнал Gradle разделяется на вывод по умолчанию и вывод ошибок. В оболочке оба печатаются по умолчанию.

Если вы записываете вывод в файл с

./gradlew assembleRelease --stacktrace > log.txt

вы регистрируете только вывод по умолчанию, а не вывод ошибок. Поэтому вам нужно

./gradlew assembleRelease --stacktrace > log.txt 2>&1

также добавить журнал ошибок в ваш файл.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]