2012-10-18 4 views
1

나는 다중 모듈 빌드를 가지고 있고, 하나의 특정 모듈이 필요하다. (프로젝트 -A라고 부름) 마지막에 빌드해야한다. 그것은 DLL에 컴파일 된 네이티브 코드를 보유하고 일부 maven 트릭을 사용하여 zip 파일로 Maven 저장소에 설치되는 모듈 (프로젝트 B라고 부를 수 있음)에 달려있다. 네이티브 코드가 java jar가 아니기 때문에 직접적으로 의존하지 않으므로 Maven Dependency Plugin을 사용하여 zip 파일의 압축을 풀고 기본 DLL을 빌드 디렉토리에 저장합니다. 건물 주문을 제외한 모든 것이 잘 작동합니다. 부모의 태그에서 다른 방법으로 선언되었지만 첫 번째 프로젝트 -A를 빌드합니다. 나는 프로젝트 -A가 프로젝트 -B에 달려 있다고 maven에게 말하고 싶다. 나는 프로젝트 B를 의존성으로 추가하려했지만, 병을 만들지 않으므로 ERROR를 던지며, 이것은 나에게 해커처럼 보였다. 어떤 도움을 주시면 감사하겠습니다.Maven 빌드 순서

답변

4

프로젝트 A에서 프로젝트 B로 종속성을 선언하면 정상적으로 작동합니다. 프로젝트 B가 자바 프로젝트가 아니라 네이티브 프로젝트인지는 중요하지 않습니다. 그냥 (그래서 당신은 프로젝트 (A)에

<dependency> 
    <groupId>...</groupId> 
    <artifactId>B</artifactId> 
    <version>...</version> 
    <type>pom</type> 
</dependency> 

있을 것입니다 아마 pom입니다) ..

+0

태그가 누락되었습니다. 그 후 원자로 주문을 관리 할 수있었습니다. 프로젝트 B는 많은 프로젝트를 포함하는 모듈입니다. 하나씩 추가해야했습니다. 개별 프로젝트 대신 부모만을 참조 할 수있는 방법이 있습니까? – amaurs

+0

코드에서 지시하는 방법과 빌드/모듈 설정을 통해 편리하게 보이게하는 방법을 종속성에 추가해야합니다. 그런 다음 일을 잘하고 코드에서 깨끗한 종속성을 사용하여 프로젝트 설정도 깨끗하게됩니다 ;-) –

+0

또한 형식은 네이티브 코드 빌드가 설정되는 방식에 따라 so 또는 bin과 다를 수 있습니다. 그리고 프로젝트 b가 부모라면 아마도 의존성을 선언하지 말고 당신이 실제로했던 것과 같은 모듈에 의존해야합니다. –

0

당신이 모듈을 지정하는 순서를 올바르게 형식으로 계정으로 포장을 복용 종속성을 선언해야합니다 부모 Pom도 관련성이 있습니다. Maven은 실제로 직접적인 의존성 때문에 모듈을 순서를 벗어나 빌드하지 않으면이 순서로 빌드됩니다.

+0

그건 제가 생각한 것입니다. 그러나 그 트릭을하지는 않았습니다, 지금은 효과가 있습니다. 좋았지 만 각 프로젝트를 종속성으로 추가해야했습니다. Maven Reactor가 모듈 태그의 순서를 무시한 이유는 모르겠습니다. – amaurs