Команды интерактивного режима sbt не выполняются под Бабуном

Я не могу запустить ни одну команду в sbt в интерактивном режиме, в то время как те же самые команды работают, если они используются в командной строке. Я использую sbt 0.13.13 с Java 1.8.0_102-b14 в Windows 7 в Babun Cygwin. Я создал минимальный проект Scala для устранения других проблем с sbt. sbt может скомпилировать мой проект и войти в интерактивный режим, но затем он зависает при выполнении любой команды. Почему это / как я могу решить эту проблему?

{ sbtXmpl }  > ./sbt projects
+ java -jar ./build/buildcommon/sbt-launch.jar projects
[info] Loading global plugins from C:\Users\MyName\.sbt\0.13\plugins
[info] Loading project definition from C:\dev\sbtXmpl\project
[info] Set current project to root (in build file:/C:/dev/sbtXmpl/)
[info] In file:/C:/dev/sbtXmpl/
[info]     core
[info]   * root
[info]     util
{ sbtXmpl }  > ./sbt
+ java -jar ./build/buildcommon/sbt-launch.jar
[info] Loading global plugins from C:\Users\MyName\.sbt\0.13\plugins
[info] Loading project definition from C:\dev\sbtXmpl\project
[info] Set current project to root (in build file:/C:/dev/sbtXmpl/)
> projects
// This never returns
^C
zsh: command not found: projects

person radumanolescu    schedule 02.12.2016    source источник
comment
На самом деле, это, вероятно, больше связано с Cygwin/Babun и его взаимодействием с Windows. Я также не могу запустить Python в интерактивном режиме, но я могу запустить python SomeScript.py   -  person radumanolescu    schedule 02.12.2016
comment
Да. Похоже, то, что вы набрали (projects), не было отправлено sbt, так как zsh заметил это после того, как sbt был убит. Вероятно, это будет ошибка более высокого уровня, чем sbt.   -  person jkinkead    schedule 02.12.2016


Ответы (1)


Вероятно, это связано с тем, как консольное Java-приложение (sbt) взаимодействует с оболочкой. Мне удалось решить проблему для sbt, добавив приведенный ниже фрагмент в сценарий, который я использую для запуска sbt:

if [ "$(expr substr $(uname -s) 1 6)" == "CYGWIN" ];then
    #Ensure that sbt uses the correct terminal settings
    CYG_OPTS="-Djline.terminal=jline.UnixTerminal -Dsbt.cygwin=true"
    #Prevent erase, kill, werase, and rprnt special characters 
    stty -icanon min 1 -echo > /dev/null 2>&1
fi

#launch sbt
java $CYG_OPTS $JAVA_OPTS -jar $SBT_LAUNCHER "$@"

Я еще не нашел решения для Python.

Программы REPL (sbt, python) не выполняются под Babun

Babun прерывает работу приложений Windows с консольным вводом

person radumanolescu    schedule 14.12.2016