2012-11-20 2 views
2

3 가지 애플리케이션 (A, B 및 C)과 함께 사용되는 WebApp (W를 호출 할 것임)를 개발했습니다.Maven을 사용하여 하나의 프로젝트에서 다중 War 생성

W 그것이 (Oracle Coherence는 예를 들면 다른 버전)과 함께 사용되는 어플리케이션에 따라 다른 의존성을 필요로한다. 순간

나는 다른 구성 파일과 다른 종속 동일한 코드 (W에서 코드)로 3 개 받는다는 프로젝트를 사용합니다.

나는 3 개 개의 다른 프로젝트에 3 번 똑같은 코드 (W의 코드를)하지 않고 제 3 개의 전쟁을 생성 할 수 있도록하고 싶습니다.

메이븐과 함께 할 수 있습니까? 미리 감사드립니다.

+0

Maven 프로파일을 사용해 보셨습니까? 프로필로 원하는 것을 할 수 있습니다. – jddsantaella

+0

글쎄 나는 그것에 대해 생각했다 (그리고 나는 그것이 작동한다고 생각한다)하지만 일을하는 "더러운 방법"처럼 보인다. (단 하나일지도 모른다.) – user1839022

+0

Maven 프로파일이 이런 일을하기 위해 생각되었는지는 모르겠다. – jddsantaella

답변

3

이 프로젝트는 공통점이 아무것도 경우, 4 개 전쟁의 프로젝트를 가지고 가장 적합한 모든 일반적인 클래스와 공통 부분에 대한

  • 하나, 자원 각 편차
  • 하나를

그런 다음 WAR Overlays을 사용하여 각 프로젝트에 공통 부분을 포함 할 수 있습니다.

이럴이 프로파일이나 다른 트릭을 사용하여, 하나의 치어로 모든 종속성을 넣어하는 것보다 낫다.

BTW this question은 나와 매우 유사합니다.

+0

글쎄, 내 문제는 : 내 모든 코드 (W) 빌드하는 동안 일관성의 종속성이 필요합니다; 내 응용 프로그램 (A B C)의 각 버전마다 다른 일관성 버전이 필요합니다. 필요성에 대한 예제 코드를 들어 3.5 코드 A와 B가 정확히 동일 (그래서이 프로젝트의 일관성 3.7 의존성이 필요) 코드 B는 3.7 상호 상관 필요 (그래서 나는이 프로젝트에 3.5 의존성 상호 상관 필요) 코 히어 런스 (coherence). 이 내 문제는, 생각 나는 충분히 명확 있다면 내 공통 부분 클래스 ... 다른 의존성없이 확실하지 컴파일 할 수 없다는 것입니다 :의 – user1839022

+0

당신이'coherence'의 다른 버전에 대한 같은 클래스를 컴파일 것을 의미 할 도서관? 이 경우 공통 코드의 버전 중 하나를'제공된'범위에서 선택할 수 있습니다 (따라서 WEB-INF/lib /에 도달하지 못합니다). 구체적인 버전의 구체적인 전쟁 프로젝트가 있습니다. '런타임 '범위 그래서 거기에 추가됩니다 –

+0

대답 주셔서 감사합니다. 그렇습니다. 나는 당신이 의미하는 바를 이해한다고 생각하지만 "구체적인"버전은 필요하지 않습니다. 일관성은 3 가지 버전에 대해 제공됩니다. 컴파일하는 동안 사용 된 다음 서버의 jar를 사용합니다. (더 많이 설명할수록 더 복잡하지 않다고 생각합니다. 버전을주지 않고 제공된 종속성을 추가 할 수만 있다면 : – user1839022

2

왜 라이브러리 프로젝트를 만들고 이것을 웹 응용 프로그램에 종속성으로 설정하지 않습니까?

그래서 하나의 코드베이스 만 (라이브러리에 있음) 구성은 3 가지 전쟁 프로젝트에 있습니다.

관련 문제