2013-08-09 5 views
0

SOA 레이어에는 12 개의 ear 파일이 있으며,이 EAR을 JBoss에 개별적으로 배포합니다. 점점 더 의존성을 관리하고 이러한 모든 EAR 파일을 배포하는 데 어려움을 겪고 있습니다. 배포를 위해 여러 개의 귀를 결합 할 수 있습니까?

  1. 메이븐을 사용하여 구축하고, 받는다는 - 귀 플러그인
  2. 지불-RS와 같은 편안하고 액세스/지불
  3. 에 대한의 WebModule이 포함되어 지급-API와 같은 API가 있습니다

    각 EAR이다 종종 다른 귀 종속되는, -1.1.9.jar

  4. 지불 서비스 - 1.1.9.ear 같은 받는다는 버전 번호를 사용

Ideall y, 우리는 하나의 EAR (또는 다른 형식)을 사용하여 함께 버전을 지정하고 인증 할 수 있습니다. 내가 부모 pom 모듈을 추가하려고했지만, 그것은 단지 동시에 모든 개별 EAR을 구축하는 것을 용이하게합니다.

이러한 EAR 파일을 어떻게 든 결합 할 수 있습니까?

대답이 '아니오'인 경우 아키텍처에 "잘못했는지"에 대한 아이디어가 있습니까? 우리는 프로젝트를 결합해야합니까? API 종속성 문제를 다른 방법으로 해결 하시겠습니까?

답변

1

여러 웹 모듈이있는 단일 귀로 가야 할 것처럼 들립니다. http://maven.apache.org/plugins/maven-ear-plugin/modules.html

SOA를 계속 사용함에 따라 웹 서비스는 정의 된 인터페이스를 통해 서로 통신 할 수 있으며 배포 만 간단하게 단순화 될 수 있습니다.

프로젝트 pom.xml들과 같이 수 :

<groupId>???</groupId> 
<artifactId>webModuleB</artifactId> 
<version>???</version> 
<type>war</type> 

<dependencies> 
    <dependency> 
    <groupId>???</groupId> 
    <artifactId>payment-service</artifactId> 
    <version>1.1.9</version> 
    <type>jar</type> 
    </dependency> 
... 

지불 서비스 : pom.xml 등으로

<groupId>???</groupId> 
<artifactId>webModuleA</artifactId> 
<version>???</version> 
<type>war</type> 

<dependencies> 
    <dependency> 
    <groupId>???</groupId> 
    <artifactId>payment-service</artifactId> 
    <version>1.1.9</version> 
    <type>jar</type> 
    </dependency> 
... 

webModuleB : 같은 pom.xml

WebModuleA 같은 pom.xml로 :

<groupId>???</groupId> 
<artifactId>earModule</artifactId> 
<version>???</version> 
<type>ear</type> 

<dependencies> 
    <dependency> 
    <groupId>???</groupId> 
    <artifactId>webModuleA</artifactId> 
    <version>???</version> 
    <type>war</type> 
    </dependency> 
    <dependency> 
    <groupId>???</groupId> 
    <artifactId>webModuleB</artifactId> 
    <version>???</version> 
    <type>war</type> 
    </dependency> 
... 

<plugin> 
    <artifactId>maven-ear-plugin</artifactId> 
    <version>2.8</version> 
    <configuration> 
     <modules> 
     <webModule> 
      <groupId>???</groupId> 
      <artifactId>webModuleA</artifactId> 
     </webModule> 
     <webModule> 
      <groupId>???</groupId> 
      <artifactId>webModuleA</artifactId> 
     </webModule> 
    ... 
     </modules> 
    </configuration> 
    </plugin> 

이 기본적으로 있어야한다 : 마지막으로

<groupId>???</groupId> 
<artifactId>payment-service</artifactId> 
<version>1.1.9</version> 
<type>jar</type> 
... 

그리고, earModule 모든 웹 모듈을 포함 할 것이라고. 당신이 (최종 귀 아카이브의 크기를 줄이기 위해) 각 war webModuleX에 포장 지불 서비스를 필요가 없도록하려는 경우

또한, 소위 "마른 체형의 전쟁"에 대한 이동해야합니다 : http://maven.apache.org/plugins/maven-ear-plugin/examples/skinny-wars.html

제안 사항 중 일부가 명확하지 않거나 정확하지 않은 경우 자세히 질문하십시오.

+0

감사합니다. 나는 너가 어디로 가고 싶은지 좋아해. 그것을 밖으로 시도하자, 만약 내가 밖으로 물론 대답을 받아 들일거야 운동. – javatestcase

+0

많은 피터에게 감사드립니다. 이것은 제가 가고있는 최종 해결책에 매우 가깝습니다. 모듈을 빌드하는 부모, 모든 종속성을 포함하는 EAR pom 및 여러 webModule이있는 EAR 플러그인. – javatestcase