다중 모듈 Maven 프로젝트가 있습니다. 이 예제를 위해 두 개의 모듈을 고려하십시오.
data
consumer
모듈 consumer
에는 data
종속성으로 모듈 이 있습니다.
모듈 data
은 여러 핵심 클래스를 선언합니다. src/test
그것들을 사용하는 테스트가 있습니다. 이 테스트에는 오랜 시간이 걸리는 객체 생성이 필요하므로 이러한 객체를 생성하는 유틸리티 메서드가 포함 된 클래스가 있습니다. 이 유틸리티 클래스 ( SampleDataHelper
)는 src/test
계층 구조에 있습니다.
또한 consumer
이러한 장황한 개체 중 일부를 만들어야 하는 모듈에 몇 가지 테스트가 있습니다. 내 트리 에있는 테스트 SampleDataHelper
에서 클래스 (에 정의 됨 data src/test
) 를 사용하고 싶습니다 consumer src/test
. 불행하게도, 비록 data
의 종속성입니다 consumer
, consumer
그 아래에있는 클래스를 볼 수 없습니다 data src/test
.
이 문제를 해결하기 위해 다른 모듈 ( data-test
)을 만들고 SampleDataHelper
아래 로 이동할 수 있다고 생각 했습니다 src/main
. 그럼이 포함됩니다 data-test
A와 시험 범위 의 의존성 data
. : 불행하게도,이 순환 종속성이 소개 data
사용을 data-test
하지만, data-test
또한 필요합니다 data
.
내가 생각 해낸 유일한 해결책 은 패키지 SampleDataHelper
아래 data src/main
에 배치 하고 test
실제 애플리케이션 코드가이를 호출하지 않기를 바라는 것입니다.
SampleDataHelper
클래스를 아래에 두지 않고 모듈간에 공유하려면 어떻게 해야 src/main
합니까?
data
consumer
mvn package
하지만 mvn install
또는 사용하면 단일 단계 빌드에서 잘 작동 mvn deploy
합니다. 간단한 메모입니다. 우리의 큰 프로젝트 중 하나에서 우리는 junit에 대한 래퍼를 가지고 TestBase
있으며 src/main
그것은 나도 좋은 생각이라고 생각하지 않는 위치에 있습니다.