2012-02-21 2 views
0

나는 많은 모듈과 하나의 메타 모듈을 가진 Maven 자바 프로젝트를 가지고있다. 그리고 나는 시험을하고 싶다. 나는 콘솔에서 mvn test 명령을 사용한다. 하지만 다른 모듈의 클래스를 찾을 수 없기 때문에 컴파일 할 때 내 테스트가 실패합니다. 하지만 IDE Eclipse에서는 오류가 발생하지 않습니다. 어떻게 해결할 수 있습니까?많은 모듈을 가진 Java 프로젝트 테스트하기

+0

상위 모듈의 "많은 모듈"하위 모듈이 있습니까? – Ralph

+0

"많은 모듈"과 하나의 "메타 모듈"은 공통 클래스를 공유합니다. –

+0

"많은 모듈"에 학부모가 있습니까? 부모의 pom이 무엇을 의미하는지 예를 보려면 http://www.dev-articles.com/article/Maven-parent-pom-450001을 참조하십시오. – Ralph

답변

1

종속성이 잘 정의되어있는 경우 mvn install 대신 mvn test를 사용하십시오. 테스트 실행은 설치 단계에도 포함되어 있으며 로컬 메이븐 저장소로 컴파일하는 데 필요한 모듈을 얻을 수 있습니다.

1

mvn install을 실행하십시오. 이것은 컴파일, 패키지 및 테스트를 실행합니다. 모든 것이 컴파일되면 mvn test 만 실행할 수 있습니다. 하지만 당신은 (IMHO) 당신이 당신의 클래스의 최신 버전이 테스트되고 있다는 것을 확신하기 때문에 당신이 전체 프로세스를 실행하고 있기 때문에 안된다. 효율성에 대해 걱정할 필요가 없습니다. 이미 컴파일 된 클래스가 있으면 클래스를 컴파일하지 않습니다. mvn clean install 만 처음부터 모든 것을 다시 작성합니다.

1

귀하의 모델은 의존성주기가 없어야합니다!

부모 pom이있는 폴더에서 mvn test을 실행하십시오.


(세부 사항)

당신이 하위 모듈과 부모 치어가없는 경우. 그런 다음 먼저 테스트 할 모듈이있는 다른 모든 모듈에 대해 mvn install을 실행해야합니다.

(이클립스가 직접 다른 오픈 프로젝트 종속성을 해결할 수 있기 때문에이 필요하지 않습니다)하지만 모든 모듈이 하나의 릴리스주기에 속하는 경우 (모든 모듈이 동일한 버전을위한 것일 발매 예정) 상위/하위 모듈/pom을 사용하는 것이 더 좋은 방법 일 수 있습니다. 부모 포트에 대해 run mvn 테스트 또는 mvn install을 수행 할 수 있으며, 올바른 순서로 모든 하위 노드에 대해 수행 할 수 있기 때문입니다. - 다른 모든 모듈을 설치 한 후에는 다른 모듈을 업데이트 할 때까지 단일 모듈에 대해 mvn test를 실행할 수 있습니다. - 그러면이 업데이트 된 모듈을 설치하거나 상위 프로그램을 더 잘 실행해야합니다.

관련 문제