我使用命令
以用户www-data从我的网络服务器触发我的gradle构建$command = "cd " . $path . "/;./gradlew :app:build --stacktrace";
exec($command, $output, $error);
有时会因
而失败
但这就是我得到的所有输出,没有像行号那样的详细错误,我会直接调用脚本。
当我这样做并从命令行运行时,它可以没有任何错误(在这种情况下)
但即使在其他情况下,当两种情况都失败时,php调用也没有具体输出。
我不知道为什么运行脚本的两种方式有时会表现得完全不同而且我不知道如何在没有任何细节的情况下找到任何错误
那里的输出发生了什么以及如何启用它?
答案 0 :(得分:0)
我现在已经解决了这个问题。
问题是,来自Gradle的日志在默认输出和错误输出中被分割。在shell中,两者都默认打印。
如果使用
将输出写入文件./gradlew assembleRelease --stacktrace > log.txt
您只记录默认输出,而不是错误输出。因此你需要
./gradlew assembleRelease --stacktrace > log.txt 2>&1
还要将错误日志附加到您的文件中。