Я хочу бежать gradlew
используя PHP. То, что я пробовал, использует exec(), shell_exec,
или же passthru
, Я выполнил эти команды внутри скрипта PHP с именем «Build.php». Я пытался вызвать скрипт из браузера или локон и получил эту ошибку
Exception in thread "main" java.lang.RuntimeException: java.io.: /var/www/.gradle/wrapper/dists/gradle-2.2.1-all/6dibv5rcnnqlfbq9klf8imrndn/gradle-2.2.1-all.zip.lck (No such file or directory)
Однако, когда я позвонил из командной строки, используя php build.php
, это сработало очень хорошо.
Итак, мне нужно gradlew
команда, которая будет выполнена через действие пользователя из браузера. Мой вопрос: что может вызвать эту ошибку и как от нее избавиться?
ОБНОВЛЕНО
Вот как выглядит build.php:
<?php
// some sorts of code ...
$alias = 'myalias';
$storepass = 'mypassword';
$keypass = 'mypassword';
$keystore = str_replace('.', '_', $packageName);
$exec = 'keytool -genkey -noprompt -keystore '.$keystore.'.keystore -alias '.$alias.' -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=kahfi, OU=ID, O=yanmii, L=jogja, ST=diy, C=ID" -storepass '.$storepass.' -keypass '.$keypass;
echo $exec;
$output = '';
exec($exec, $output);
print_r($output);
passthru("./gradlew assembleRelease 2>&1");
?>
Задача ещё не решена.
Других решений пока нет …