Mindcode를 로컬로 실행하는 경우 지원 추가

7234 단어 mindcode

묘사

Resolves#27

토론 #1

@schittli, 이 PR에 서명하고 Windows 스크립트가 유효한지 알려주시겠어요?봐봐bin\run-local.cmd.
나는 이미 오랫동안 Windows 명령 파일을 쓰지 않았다.
감사합니다!

토론 #2

윈도우즈 일괄 처리 파일을 작성해 주셔서 감사합니다@프랑소바, 조언이 좀 있습니다.

유닛 테스트, ProcessBuilder, diff 및 Windows


우리는 지금 run-local.cmd이 있기 때문에 테스트도 실행해야 한다고 생각합니다.
윈도우즈가 몰라서diff 구글에서 자바 단위 테스트를 검색했고 Process Builder()를 사용하여 다른 운영체제에서 테스트를 했습니다.일부 개발자들은 이 개념을 사용하여 코드의 운영체제를 구분한다.
파일: webapp\src\test\java\info\teksol\mindcode\webapp\SamplesTest.java
    private void compile(String program, File source) throws IOException {
        final boolean isWindows = System.getProperty("os.name").toLowerCase().contains("win");
        …
        final Process diff = new ProcessBuilder()
                .command(isWindows ? "fc.exe" : "diff", "-u", unoptimizedTarget.getAbsolutePath(), optimizedTarget.getAbsolutePath())
                .redirectOutput(diffTarget)
                .start();
    }
적어도 Windows에서는 이 코드가 유효합니다.

토론 #셋

아, 네, 그 부분을 잊어버렸어요.나는 너의 코드를 복사해서 여기에서 일하게 할 것이다.그런 다음 Windows에서 시험적으로 사용할 수 있습니다.
감사합니다!
프랑소바

Le 22 avr. 2021 à 08:43, Tom-- @.***> a écrit :

 Thanks a lot for writing the windows batch file!, I have a few suggestions.

Unit Tests, ProcessBuilder, diffand Windows

Because we now have run-local.cmd, therefore I guess that the tests should also run. Because windows does not know diff, I have googled for Java unit tests using ProcessBuilder() with different operating systems. Some developers use this concept to to distinguish between the OS in the code: File: webapp\src\test\java\info\teksol\mindcode\webapp\SamplesTest.java

private void compile(String program, File source) throws IOException {
    final boolean isWindows = System.getProperty("os.name").toLowerCase().contains("win");
    …
    final Process diff = new ProcessBuilder()
            .command(isWindows ? "fc.exe" : "diff", "-u", unoptimizedTarget.getAbsolutePath(), optimizedTarget.getAbsolutePath())
            .redirectOutput(diffTarget)
            .start();
}

At least, on Windows, this code works.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

토론 #4

bin\run local로 피드백합니다.명령하다


안녕히 주무세요, 프랑소바
Windows 명령 파일을 오랫동안 작성하지 않았기 때문에 파일bin\run-local.cmd이 매우 좋아 보입니다.-)
그러나 나는 두 가지 힌트를 가지고 있다.

1) PowerShell이 더 나은 솔루션이 될 것

  • 이 하위 명령은 PowerShell 명령이며 cmd: "$((Get-ChildItem .\webapp\ *.jar -Recurse | select -ExpandProperty FullName) -join ';')"
  • 에는 적용되지 않습니다.
  • 지금까지 Linux, 심지어 MacOS와 모든 Windows에 PowerShell이 있었던 지 오래되었기 때문에 저는 이 스크립트에서 PowerShell을 사용하고 Windows cmd를 사용하지 않겠습니다.건의를 하나 하겠습니다.
  • 2) 그러나 cmd로 복습:

  • 다른 cmd를 호출하려면 call …를 사용해야 하기 때문에 이것이 더 좋다. call mvnw.cmd install
  • Echo필요 없음".만약 그것들을 사용한다면 cmd는 그것들을 인쇄할 것이다. 보기에 매우 보기 싫다.
  • 그래서 이것은 더 좋은 버전이지만 자바는 하나의 PowerShell 명령만 포함하기 때문에 호출할 수 없습니다.
    @echo off
    
    rem In order to prevent the important information from being obscured,
    rem compile Mindcode, THEN give important information to get it working.
    rem This way, if Mindcode can't start, the important information will be
    rem available right above the failure.
    call mvnw.cmd install
    
    echo *****
    echo *****
    echo ***** To run Mindcode locally, you need to have a PostgreSQL database accessible.
    echo ***** You have a few choices:
    echo *****
    echo *****     - Install PostgreSQL for Windows: https://www.postgresql.org/download/windows/
    echo *****
    echo *****     - Use Docker to run PostgreSQL:
    echo *****
    echo *****           Download Docker from https://www.docker.com/get-started
    echo *****           Once done, start a PostgreSQL instance:
    echo *****               docker run -p 5432:5432 --name mindcode -v mindcode -e POSTGRES_HOST_AUTH_METHOD=trust postgres:latest
    echo *****
    echo ***** If your PostgreSQL instance is not available at postgres://127.0.0.1:5432/mindcode_development, edit
    echo ***** both Spring configuration files and set the correct values:
    echo *****    webapp\src\main\resources\application.properties
    echo *****    webapp\src\test\resources\application.properties
    echo *****
    
    java -classpath "$((Get-ChildItem .\webapp\ *.jar -Recurse | select -ExpandProperty FullName) -join ';')" info.teksol.mindcode.webapp.WebappApplication
    

    토론 #5

    bin\run local 교체 제안PowerShell cmd

    bin\run-local.cmd는 장점이 하나 있다. 그것은 매우 작지만 자바가 작동하지 않는다(앞에서 말한 바와 같이)
    따라서 PowerShell로 변경하는 것이 좋습니다.나는 이미 예를 하나 썼는데, 아래의 절차를 실행하고 있다.
    PowerShell 파일을 변경 요청으로 보낼 수 있지만, 저는 매년 두세 번만 보낼 수 있기 때문에 이렇게 하는 전문가가 아닙니다.필요한 경우 스크립트를 최소화하고 현재 솔루션에서 다음 단계를 수행합니다.
  • 웹 app\src에서 application.properties 파일을 검색
  • 읽기spring.datasource.url 설정
  • ...PostgreSQL 포트가 열려 있는지 테스트
  • 포트를 액세스할 수 없는 경우 스크립트가 중지되고 메시지가 표시됨To run Mindcode locally, you need to have a PostgreSQL database accessible. …
  • PostgreSQL 포트에 액세스할 수 있는 경우 설치.\mvnw.cmd를 시작합니다
  • .
  • 오류가 발생하면 스크립트가 중지됩니다
  • .
  • 그리고 자바가 시작됩니다
  • 연결 테스트에서 시작된 스크립트는 다음과 같습니다.
    image
    만약 당신이 그것의 운행을 보고 싶다면, 나는gif로 전체 웹 앱 시작 과정을 포착했습니다.https://imgur.com/jrh84HR
    변경 요청에서 보내는 스크립트입니다.
    run-local.ps1.txt.\mvnw.cmd 100% PowerShell을 사용하겠습니다.제가 Windows를 마지막으로 개발한 것은 13년 전입니다!PowerShell 스크립트를 공유할 수 있는 경우 이렇게 하십시오.테스트할 수 있는 Windows 환경이 없기 때문에 매우 도움이 될 것입니다.

    토론 #6

    I'm 100% open to using PowerShell. Last time I used Windows for development was 13 years ago! If you can share the PowerShell script, please do so. That will be very helpful, as I don't have a Windows environment to test in.


    안녕히 주무세요, 프랑소바
    안 물어봐요. 귀찮아서 그래요.🙂, 하지만 우리가 상대방을 기다리고 있을지도 몰라요. 불행할 거예요...따라서 문제는 다음과 같습니다.
    내가 PowerShell 스크립트로 끌어오기 요청을 만드는 것을 보았습니까?pull 29
    나는 줄곧 Git/Github를 사용하려고 노력했는데, 세 번째 시도에서 이것은 내가 할 수 있는 가장 좋은 것이다.
    나는 가능한 한 빨리 변경 요청을 수정하기 위해 최선을 다할 것이다. 요청이 통합되면 다시 그것을 테스트할 것이다.어이, 지체해서 미안해.이번 주말 코백스를 받았지만 아직 오픈소스 작업을 감당하지 못했다.나는 이번 주 어느 때에 이 홍보를 해야 한다.당신의 노력에 다시 한 번 감사 드립니다!

    토론 #7

    어...이것은 사실상 좋은 소식이다. -) - 그래서 우리는 1040'000'000에서 백신을 접종한 사람이 1040'000'001로 증가했다.
    보기보다 진전이 좋습니다: -

    토론 #8

    @schittli, 나는 이미 당신의 최신 변화로 이 홍보를 업데이트했습니다.만약 네가 다시 한 번 테스트할 시간이 있다면, 나는 매우 감사할 것이다.감사합니다:)

    좋은 웹페이지 즐겨찾기