2009-06-17 2 views
11

두 개의 maven 모듈이 있습니다. 하나는 jar로 끝나고 하나는 jar에 의존하는 war입니다.Maven - 이슈 소스에 대한 의존성 추가

jar 모듈이 컴파일 된 클래스와 함께 소스 코드를 패키지에 넣어서 두 번째 모듈에서 액세스 할 수있게하려고합니다. 나는 maven-source-plugin을 사용해 보았지만, 출력물에 의존성을 추가하는 방법에 대해서는 혼란 스럽다. 기본적으로 종속성은 maven-source-plugin이 생성하는 소스 코드 jar ("-source.jar"로 끝나는)가 아니라 컴파일 된 jar로 간다.

컴파일 된 소스에 대한 종속성을 유지하면서 종속성으로 "-source.jar"를 어떻게 추가합니까?

답변

20

저는 이것을 시도하지 않았지만 프로젝트에 두 개의 프로파일을 만들어야한다고 생각합니다. 주요 항아리를 만드는 것. 다른 하나는 소스 항아리를 만듭니다. 불행히도, 나는 그 프로파일을 어떻게 구축 할 것인지 정확하게 모르겠습니다. 지금까지 좋은 예를 찾을 수 없었습니다.

(코멘트에 accoding의, 당신은 실제로 프로필이 필요하지 않습니다. 그냥있는 소스를 배포하고 소스 분류를 통해이를 사용할 것입니다 소스 - 플러그인을 사용할 수 있습니다) 이론적으로

를, 당신 ' d 두 번째 프로파일을 사용하여 소스를 프로젝트에 연결하십시오. 이것은 해당 분류자를 사용하는 소스에 대한 저장소의 두 x 째 항목을 작성합니다. 일단 저장소를 저장소에 설치/전개하면 소스를 직접 지정하기 위해 종속성에 classifier 태그를 사용하여 종속성으로 소스를 포함시킬 수 있어야합니다.

그래서 당신은 당신의 웹 애플리케이션 POM에서 이런 일이있을 것이다 :

<dependencies> 
    <dependency> 
    <groupId>myGroup</groupId> 
    <artifactId>myJar</artifactId> 
    <version>4.0</version> 
    <type>jar</type> 
    </dependency> 
    <dependency> 
    <groupId>myGroup</groupId> 
    <artifactId>myJar</artifactId> 
    <version>4.0</version> 
    <type>jar</type> 
    <classifier>sources</classifier> 
    </dependency> 
</dependencies> 
+2

나는 심지어 프로파일을 필요로하지 않았다 받는다는 - 소스 플러그인은 자동으로 "소스"분류가 가능했다. 종속성에 소스을 추가했습니다. –

+3

죄송합니다 - 이 아닌 을 의미했습니다. –

+1

mGWT 프로젝트에 대해 동일한 설정을했습니다. 우리는 AutoBean 인터페이스를 서버의 서비스 (CXF를 사용하는 REST 서비스) 및 mGWT 클라이언트에서 사용되는 "공유"Maven 모듈에 배치합니다. 문제는 maven gwt : compile 목표에 소스와 컴파일 된 버전이 필요하다는 것입니다. 위의 구성은 우리에게도 도움이되었습니다. – peron

1

빌드 섹션에서 리소스 디렉토리로 src 디렉토리를 추가 했습니까? 그것은 빌드에 항아리에 소스를 복사해야합니다.

관련 문제