2013-04-01 5 views
4

muli-module maven 프로젝트의 실행 가능한 jar 파일을 생성하기 위해 며칠 동안 노력했습니다. 그러나이 jar 파일을 실행하려고하면 "주 클래스 src.main.java.com.domain.Mainclass를 찾을 수 없거나로드 할 수 없습니다"(회사의 개인 정보 보호를 위해 이름 도메인과 MainClass를 변경했습니다)Maven Jar Builder : 메인 클래스를 찾을 수 없거나로드 할 수 없습니다.

나는 일을 찾았고 어떤 명백한 조언도 효과가없는 것으로 보인다.

내 프로젝트에는 모든 종속성 (패키지 : POM) 및 여러 모듈 프로젝트 (패키징 : Jar)를 다운로드하는 주요 maven 프로젝트가 있습니다.

모든 것이 잘 작동하는 것처럼 보입니다. 그리고 모든 파일이 클래스 파일로 컴파일되지만 어떻게 든 메인 클래스가 pom에 추가되지 않습니다.

내 폼은 파일 플러그인 : 명령이 내가 사용

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2-beta-4</version> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
     <manifest> 
      <mainClass>com.domain.project.MainClass</mainClass> 
     </manifest> 
     </archive> 
     </configuration> 
     <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     </execution> 
     </executions> 
     </plugin> 

: MVN 깨끗한 패키지, 나는 대상 폴더로 cd 및 수행 자바 -jar jarfilename.jar

어떤 조언 도움이 될 것이다 가장 환영 받는다!

편집 :

나의 현재 구성이 모든 모듈에 대한 2 개 jar 파일 생성 :

  • 프로젝트 이름 - 항아리 -와 - dependencies.jar
  • projectname.jar을

때 내 메인 클래스 모듈의 대상 폴더를 탐색, 성공적으로 jar 파일을 실행할 수 있습니다. 그러나, 부모 파빌리온 프로젝트의 jar 파일 (pom을 가진 jar 파일)을 실행하려고하면 여전히 동일한 오류가 발생합니다. 누구든지 주 jar 파일이 주 클래스를 찾을 수없는 이유를 알고 있습니까?

감사합니다.

답변

10

기본 클래스의 패키지 이름에 src.main.java을 넣지 않아야합니다. 이것은 기본 Maven 프로젝트 폴더 구조 규칙의 일부일뿐입니다. 구성은 아마도 다음과 같아야합니다.

<archive> 
    <manifest> 
     <mainClass>com.domain.project.MainClass</mainClass> 
    </manifest> 
    </archive> 
+0

감사합니다. @NilsH. 내가 제안한 구성으로 바뀌었고 여전히 같은 문제가 있습니다. 나는 주 pom 파일 (패키지 : Pom)에이 파일을 가지고있다. 각 모듈과 주 프로젝트 모두에 모든 빌드 후에 2 개의 jar 파일을 포함하는 대상 폴더가 있다는 것을 아는 것이 도움이됩니까? 1 : projectname-jar-with-dependencies.jar 2 : projectname.jar – Jonstewart

+0

또한 메인 클래스 모듈의 대상 폴더에 jar 파일이 실행된다는 것을 발견했습니다. 왜 내 주요 프로젝트 단지에 적합한 클래스가없는 것 같아요? – Jonstewart

+0

올바르게 작동했습니다. 메이븐 (Maven)은 각 패키지를위한 항아리를 만들고 있었고 올바른 항아리를 사용하고 있는지 확인해야합니다. 도와 주셔서 감사합니다! – Jonstewart

관련 문제