2014-06-08 3 views
2

gradled jettyRunWar 명령으로 임베디드 부두를 실행할 수 있습니다. 그러나 프로그램 종료시 자동으로 중지되지는 않습니다.Gradle embedded jetty plugin이 자동으로 중지되지 않습니다.

나는 stackoverflow 및 다른 포럼에서 솔루션을 검색 한 후 두 가지 코드를 시도했다. 하지만 아무도 작동하지 않습니다.

1) runJetty 작업, 내장 부두 서버가 시작 실행에 두 경우 모두

apply plugin: 'jetty' 

task runJetty() { 

    doFirst { 
     jettyRunWar.stopPort = 8090 
     jettyRunWar.stopKey = 'stopKey' 

     jettyRunWar.daemon = true 
     tasks.jettyRunWar.execute() 
    } 

    doLast { 
     jettyStop.stopPort = 8090 
     jettyStop.stopKey = 'stopKey' 

     tasks.jettyStop.execute() 
    } 
} 

build.gradle

apply plugin: 'jetty' 

task runJetty() { 

    jettyStop.stopPort = 8090 

    dependsOn jettyRunWar 
    finalizedBy jettyStop 
} 

2)

을 build.gradle하지만, 프로그램 종료에 멈추지 않았다.

FWIW : Eclipse 외부 도구 구성을 사용하여 build.gradle을 시작하고 종료합니다. 그리고, 8080 포트를 사용하여 테스트합니다. 2 년

+1

태스크에서'execute()'메소드를 호출하는 것은 권장되지 않습니다. 위 워크 플로우를 구현하려면'dependsOn'와'finalizedBy'를 사용해보십시오. –

답변

3

) 등 8090.

으로 나는 청취자 당신이 실제로 그래서 포트를 점유하고 당신이 '중지'를 설정 할 수 없습니다 8080에 부두를 실행하는 생각, 뭔가에 stopPort을 설정하려고 .

그렇지 않으면 당신이 당신 build.gradle 여기

// need to set the stopPort and stopKey so we are able to stop jetty! 
jettyRunWar.stopPort = 8090 
jettyRunWar.stopKey = 'stopKey' 
jettyStop.stopPort = 8090 
jettyStop.stopKey = 'stopKey' 

에서 다음을 넣을 수 있습니다 것은에서 IntelliJ를 에 나를 위해 http://pastebin.com/eTtvCdTb

내가 실행 'jettyRunWar'와 'jettyStop을'일 예이다 IntelliJ의 작업 창을 받침. 내가 실수로 그 작업을 실행하는 경우를 대비하여 jettyRun에 대한 매개 변수를 설정했습니다. 그런 다음 서버를 종료 할 수 있습니다.

+0

포트를 8090으로 변경하면 서버가 시작되지만 프로그램 종료시 자동으로 중지되지 않습니다. 질문에 포트를 수정했습니다. 나는 또한 gradle jettyRunWar 명령을 먼저 실행 한 다음 gradty jettyStop을 실행 해 봅니다. 하지만 jettyStop을 실행하는 데 예외가 있습니다. 현재 다른 Gradle 인스턴스에서 사용 중입니다. Eclipse 나 명령 줄과 같은 inteliJ 외부에서 build.gradle을 실행할 수 있습니까? –

+1

제공 한 예제 링크에 표시된대로 jettyRun.stopPort = 8090 및 jettyRun.stopKey = 'stopKey'를 추가 한 후. 나는 gradle jettyStop 명령어로 서버를 멈출 수있다. 이제 "다른 Gradle 인스턴스에서 현재 사용 중입니다."예외가 발생하지 않습니다. –

관련 문제