우리는 우리의 UI 프로젝트가 EJB 클라이언트 의존성을 사용하여 꽤 많은 비즈니스 서비스를 포함하는 솔루션을 가지고 있습니다. Maven에서이 문제는 클라이언트 .jar에 보통 약 1-2 개의 클래스가 포함되어 있어도 전체 서비스 응용 프로그램의 전체 종속성 스택을 가져 오는 문제가 있습니다. .ear 파일이 50-100Mb까지 커지기 시작하면 및 팝업이 발생하여 UI 응용 프로그램에 몰래 들어가는 부적절한 종속성으로 인해 때때로 성가신 오류가 발생할 수 있습니다.Maven ejb-client 생성 의존성 배제
물론 우리는 항상 클라이언트 측의 의존성을 제외 할 수 있습니다.하지만 우리는 이러한 서비스를 사용하여 각 클라이언트 프로젝트에 동일한 묶음의 줄을 작성해야합니다. 이것은 많은 불필요한 반복입니다. 게다가, 사람들은 가장 이상한 오류 메시지를 생각해 내고 일부 클라이언트 항아리가 포함되어 있다는 것을 기억하기 전에 그들을 추적하는 데 많은 시간을 사용합니다. 그리고 그것이 방정식으로 가져온 추가 의존성을 확인하지 않았습니다.
예 : 하나의 서비스 클라이언트가 포함되고
<dependency>
<groupId>fi.path.to.service</groupId>
<artifactId>customermanagement-common</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>fi.path.to.service</groupId>
<artifactId>customermanagement-service</artifactId>
<classifier>client</classifier>
<exclusions>
<exclusion>
<groupId>fi.path.to.dependency</groupId>
<artifactId>internal-dependency-#1</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor</artifactId>
</exclusion>
<exclusion>
<groupId>fi.path.to.dependency</groupId>
<artifactId>internal-dependency-#2</artifactId>
</exclusion>
<exclusion>
<artifactId>internal-dependency-#3</artifactId>
<groupId>fi.path.to.dependency</groupId>
</exclusion>
<exclusion>
<artifactId>internal-dependency-#4</artifactId>
<groupId>fi.path.to.dependency</groupId>
</exclusion>
<exclusion>
<artifactId>internal-dependency-#5</artifactId>
<groupId>fi.path.to.dependency</groupId>
</exclusion>
<exclusion>
<artifactId>castor-xml</artifactId>
<groupId>org.codehaus.castor</groupId>
</exclusion>
<exclusion>
<artifactId>castor-codegen</artifactId>
<groupId>org.codehaus.castor</groupId>
</exclusion>
<exclusion>
<artifactId>castor-xml-schema</artifactId>
<groupId>org.codehaus.castor</groupId>
</exclusion>
<exclusion>
<artifactId>internal-dependency-#6</artifactId>
<groupId>fi.path.to.dependency</groupId>
</exclusion>
</exclusions>
<version>2.6</version>
</dependency>
는 여러 가지 애플리케이션에서 이러한 여러 상상할 당신이 모든 제외를 작성하는 때마다 아주 성가신과 프로젝트, 사진을 찍어 POM은 비교적 오래 기다리기 시작합니다.
필자는 제공된 종속성을 표시 하겠지만 런타임에 충돌이 발생하는 종속성이 두 개 존재합니다 (존재하지 않는 경우). 외부 Exception 클래스가있는 또 다른 응용 프로그램에 다른 서비스 호출을 포함하는 서비스 호출을 포함하는 서비스 응용 프로그램 호출은 서비스 프로젝트 내부에 포장 된 다른 이유가 아니며 런타임에 ClassNotFoundException을 발생시킵니다 (없는 경우).
그러므로 maven-ejb-plugin에서 pom.xml 스펙을 사용하여 생성하는 동안 ejb 클라이언트에서 클래스를 제외/포함 할 수 있지만 의존성을 제외시키는 방법이 있습니까?
비슷한 문제에 직면하여 CI 솔루션을 통해 프로젝트를 구축하는 방법을 변경하기 시작하면 회사의 다른 모든 앱과 다르게 기능 할 때 유지 관리 문제가 될 수 있습니다. – t0mppa