2013-08-15 4 views
0

Maven에서 아티펙트를 실행하려면 어떻게해야합니까 (A라고 부름)? 이 아티팩트는 다른 메이븐 아티팩트에 런타임 종속성이 있습니다. JettyRun 작업을 사용하여 작업 할 수있게되었습니다. src/main/java 디렉토리에 이슈 A에 대한 소스 파일을 가지고 있습니다. 소스 파일이 없다고 가정하면 (예 : 모든 jar/종속성이 메이븐 저장소에서 검색 됨), JettyRun 또는 다른 작업을 사용하여 아티팩트 A에서 Java 프로그램을 시작하는 방법은 무엇입니까?Gradle의 Maven에서 Java 아티팩트를 다운로드하십시오.

답변

0

다음 코드로 서버를 시작할 수 있습니다. jar 파일을 로컬 리포지토리에 추가 한 다음 해당 jar뿐만 아니라 종속 된 다른 모든 아티팩트에 대한 컴파일 종속성을 추가했습니다. 중요한 것은 클래스 패스였습니다.

compileJava.enabled = false 
task runServer(type:JettyRun){ 
    daemon = true 
    classpath = sourceSets.main.compileClasspath 
    httpPort = 8984 
} 

build.gradle의 끝에 도달하면 서버가 중지됩니다. 서버를 계속 살 수있는 방법이 있습니까? 서버를 시작한 후 실행해야하는 작업이 있었기 때문에 데몬을 설정해야했습니다. 그러나 일단 모든 작업이 완료되면 서버를 계속 유지해야합니다. 스크립트가 끝나면 서버가 종료되지 않게하려면 어떻게합니까?

0

Jetty 플러그인이 프로젝트를 WAR 파일로 지정할 수 있다고 생각하지 않습니다. 대신 당신은 Cargo plugin 주사를 줄 수 있습니다. 다음은 샘플 구성입니다.

cargo { 
    containerId = 'jetty7x' 
    port = 9090 

    deployable { 
     file = file('/your/path/A.war') 
     context = 'yourcontext' 
    } 

    local { 
     homeDir = file('/your/path/to/jetty-7') 
    } 
} 
관련 문제