2017-10-31 13 views
1

mvn 컴파일을 사용하는 동안 종속성을 "패키지화"할 수 있는지 궁금합니다..jar에서 종속성을 패키지화 할 수 있습니까

mvn install을 사용하여 프로그램을 컴파일 할 때 예상대로 깨끗하고 훌륭한 결과를 얻지 만 .jar 파일로 패키지를 만든 후에 갑자기 클래스 예외가 누락됩니다.

나는 빌드 및 패키지 클래스 경로의 차이로 인해 발생할 수 있다고 생각했지만 해결할 수 없습니다.

Exception screen

고마워요.

+2

예, [OneJar] (http://one-jar.sourceforge.net)라는 도구를 사용하거나 기본적으로 모든 것을 unjars하고 단일 항아리로 결합하는 "fat jar"를 생성 할 수 있습니다 . 메이븐 (Maven)은 뚱뚱한 항아리를 선호합니다. 개인적으로는 동일한 이름을 가진 항아리에 속성/구성 파일을 배치하는 경향이 없으므로 문제가 발생합니다. – MadProgrammer

+2

또 다른 방법은 매니페스트 파일에 외부 라이브러리의 위치를 ​​가리 키도록 클래스 경로 항목을 포함시키는 것입니다 (예 : https://stackoverflow.com/questions/24899985/this-project-cannot- 추가 - 때문에 -하지 않습니다 - 항아리 - 파일 - 사용 - 개미/24900260 # 24900260) – MadProgrammer

+0

매력처럼 작동합니다. 고맙습니다! – PapeK24

답변

1

당신이 찾고있는 실행 가능한 음영 처리 된 병처럼 들립니다.

실행 파일을 만드는 방법은 무엇입니까?

https://github.com/renfeng/elo-rating/blob/master/cli/pom.xml#L32-L51

어떻게 음영 항아리를 만드는 방법?

https://github.com/renfeng/elo-rating/blob/master/cli/pom.xml#L52-L67

또는,

  1. 패키지 조립 플러그인 종속성 및

https://github.com/renfeng/elo-rating/blob/master/cli/src/main/assembly/dist.xml#L30-L33

클래스 경로
  • 시작
      을 수 지정된. https://github.com/renfeng/elo-rating/blob/master/cli/elo#L4

    또는 내 github의 샘플 프로젝트가하는 것처럼 당신이 중간에 어딘가 정착 할 수 있습니다.

  • +0

    코드를 인라인하십시오. 종이에 인쇄해도 답변을 사용할 수 있어야한다고 항상 생각하십시오. –