2017-10-18 1 views
0

제가 {project.parent.basedir}

| prj 
    | a1_module 
    |src 
    |pom 
    | a2_module 
    |src 
    |pom  
    | lib 
    xyz.jar 
    |pom(parent) 

는 이제 서브 모듈 (a1_module)에 xyz.jar 등록

프로젝트 구조 다음 한 경로 서브 모듈보다는 상위 모듈로의 촬영 POM :

<dependency> 
    <groupId>com.asd.prj</groupId> 
    <artifactId>pubsub</artifactId> 
    <version>1.0.0.</version> 
    <scope>system</scope> 
    <systemPath>${project.parent.basedir}/lib/pubsub_2.11-1.0.0-SNAPSHOTjar</systemPath> 
</dependency> 

나는 ${project.parent.basedir}/lib/pubsub_2.11-1.0.0-SNAPSHOTjar 나에게 prj/lib/pubsub_2.11-1.0.0-SNAPSHOTjar을 제공한다 기대하지만, 나에게이 prj/a1_module/lib/pubsub_2.11-1.0.0-SNAPSHOTjar 같은 경로를 제공합니다.

메인 모듈의 "lib"디렉토리에 하위 모듈은 보관되어 있지 않으므로 오류가 발생합니다.

This questionproject.parent.basedir이 그 모듈 경로의 부모 경로를 제공해야하지만 내 경우에는 하위 모듈 경로 대신 부모 모듈 경로를 제공해야한다고 말합니다.

내가 잘못하고있는 일이나 다른 방법으로 내 로컬 항아리를 하위 모듈에 등록하는 방법에 대한 제안.

+1

는 시스템 범위 의존성을 제거하고 같은 lib 디렉토리 구조 메이븐에서 ... 그들은 정말 나쁜 일을 사용하지 마십시오. 저장소 관리자를 사용하고 저장소 관리자에이 jar를 배포하는 것이 더 좋으며 이후에는 일반적인 종속성으로 jar를 사용합니다 ... (pubsub-1.0.0-SNAPSHOT.jar이 다른 Maven 빌드에서 생성되었다고 가정합니다.) – khmarbaise

+0

바로 @khmarbaise입니다. 저장소 관리자 방식을 따르 겠어. 이것은 좋은 방법이 아닙니다. –

답변

0

이를 사용할 수 있습니다

<systemPath>${basedir}/../lib/pubsub_2.11-1.0.0-SNAPSHOTjar</systemPath> 
+0

그래도 같은 문제를 시도했습니다. –