我想从球拍代码中调用mvn命令,然后继续调整到该过程,并在它工作时取回maven的输出,逐行将它呈现给用户。
我尝试使用批处理文件实现它,导航到我的maven项目并调用mvn命令(目前简单的mvn clean将满足..)
cd\
cd projects\java\projA
mvn clean
我尝试使用系统和进程调用此批处理文件,但两者都返回相同的结果:mvn无法识别。 (当然它是,因为我可以自己调用这个批处理文件,它完美地工作)。
(define invocation-method (lambda () (system "c:\\test.bat")))
;; capture output
(string-split (with-output-to-string invocation-method) "\n")
和输出:
'mvn' is not recognized as an internal or external command,
operable program or batch file.
'("\r"
"C:\\Users\\aviad>cd\\\r"
"\r"
"C:\\>cd projects\\java\\projA\r"
"\r"
"C:\\projects\\java\\projA>mvn clean \r")
似乎当我从racket上下文调用它时,它不熟悉路径变量或其他东西(甚至可能是其他环境变量?)。
任何想法?