2017-03-02 2 views
0

프로젝트의 모든 모듈을 포함하는 uber jar를 만들려고했습니다. 필자는 플러그인 (음영/어셈블리)이 필요하다는 것을 읽고 있었지만 그 결과는 아무 것도 만들지도 않거나 음울하지도 않습니다.다중 모듈 프로젝트에서 uber-jar 만들기

어떻게 멀티 모듈 프로젝트에서 jar 파일을 만들 수 있습니까? 나는 넥서스에 다른 프로젝트에 대한 의존성으로 업로드하고 싶지만 모듈 당 하나의 종속성 만 있으면되고 모든 모듈 내부에 하나의 의존성 만 있으면된다.

+1

예, 할 수 있습니다. 단지 uber 항아리가 부모에게는 만들어지지 않았습니다. 모듈 중 하나를 다른 모듈에 의존하게하고 거기에 uber jar 파일을 만듭니다 (마지막 모듈에서 말하기). 그늘 플러그인은 시작하기 좋은 곳입니다. 또한 봄을 사용하여 your'e 사용하는 경우 그 자체가 maven - 플러그인을 uber 항아리 (그게 내가 그늘 플러그인과 함께 작업하는 것보다 간단한 해결책으로 고려할 것이다) 번들로 봄 부트있다 – wemu

+0

당신의 멀티 - 모듈 프로젝트에 추가하고 필요한 의존성을이 모듈에 추가하고 maven-shade-plugin/maven-assembly-plugin을 구성하여이를 작성하십시오. – khmarbaise

답변

0

괜찮아요, 플러그인 문제는 부모 모듈에 플러그인을 사용하고 있다는 것이 었습니다. 부모 모듈의 최종 모듈 인 istead에서 사용해야합니다.

간단하게 말해서 : 어셈블리는 jar를 열고, 의존성을 넣고, jar를 닫습니다. 부모님이 열 수있는 항아리가 없었기 때문에 ...

+1

스프링 (스프링 - 콩, 스프링 - 컨텍스트, 스프링 - jdbc 등)을 사용하는 경우 메이븐 어셈블리 플러그인에주의하십시오. Assembly Plugin은 실제로 모듈 jar를 클래스에 압축 해제하고 이러한 클래스를 uber-jar에 넣습니다. (참조 : https://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with- dependencies). 결과는 jar에서 공통적 인 모든 구성 파일을 겹쳐 쓰게됩니다. – htulsiani

+0

@htulsiani 내 덕분에 많은 도움이되었습니다. – Sarief

관련 문제