나는 멀티 모듈 프로젝트를 가지고 있으며, 그 중 하나는 배포 용이다.Maven을 사용하여 실행 가능한 jar를 실행하는 좋은 방법이 있습니까?
Project \
| moduleA \
| moduleB \
| ...
| dist-module \
배포판에는 실행하기 쉬운 jar 파일이 포함되어 있습니다. 나는에 자바 목표를 얻을 수있는 방법을 찾을 수없는, 불행하게도
mvn exec:java \ OR
mvn exec:exec
을 : 단순히 입력하는 것은 매우 바람직 할 것이다
java -jar dist-module/target/dist-module-1.0-SNAPSHOT-full-dist/myJar.jar
: 그러나, 나는 뭔가를 입력 할 필요가 그것을 실행합니다 .jar를 실행하십시오. exec 목표는 실제로 그것을 수행 할 것이지만 캐치가 있습니다. jar에는 임베디드 jetty 서버가 포함되어 있으며 exec 작업 (maven과 동일한 JVM을 사용하지 않음)으로 인해 프로세스를 종료하지 않으면 서버가 종료되지 않습니다 수동으로, 이것은 비슷하게 번거롭다.
Maven을 사용하여 이것을 수행하는 방법에 대한 권장 사항은 무엇입니까?
편집 : 대한 명확한
,이 명령은 주로 간단한 수동 연기 테스트에 사용됩니다; 로그 출력을 읽고 프로그램이 배포 환경에서 올바르게 시작되었는지 확인하십시오. 따라서, 아마도 ctrl-c가 서버와 maven을 종료하는 블로킹 호출이어야합니다.
임베디드 서버는 몇 가지 특정 응용 프로그램을 실행하는 데 특화되어 있으며 자동으로 다시로드하지 않습니다. 따라서 서버를 장시간 동안 maven과 독립적으로 실행되도록 유지할 필요가 없습니다.
부두의 임무는 무엇입니까? – Nachtgold
문제가있는 exec로 pom을 첨부 할 수 있습니까? java goal definition? –
maven은 빌드 및 배포 도구이기 때문에 좋은 방법은 없습니다. 당신의 항아리가 빌드 프로세스의 일부라면, 그것을위한 메이븐 플러그인을 작성하십시오. 앱을 실행하기 위해 maven을 사용하고 싶다면 다른 것을 생각하는 것이 더 나을 것입니다. – kan