Maven-Ear-Plugin- 여러 모듈 제외 IE 항아리, 전쟁 등
-
20-09-2019 - |
문제
새 프로젝트를 위해 EAR 파일을 만들기 위해 Maven EAR 플러그인을 사용하고 있습니다. 플러그인 문서에서 모듈 제외 명령문을 지정할 수 있습니다. 예를 들어 내 플러그인의 구성은 다음과 같습니다.
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<jboss>
<version>5</version>
</jboss>
<modules>
<!-- Include the templatecontroller.jar inside the ear -->
<jarModule>
<groupId>com.kewill.kdm</groupId>
<artifactId>templatecontroller</artifactId>
<bundleFileName>templatecontroller.jar</bundleFileName>
<includeInApplicationXml>true</includeInApplicationXml>
</jarModule>
<!-- Exclude the following classes from the ear -->
<jarModule>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<excluded>true</excluded>
</jarModule>
<jarModule>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<excluded>true</excluded>
</jarModule>
... declare multiple excludes
<security>
<security-role id="SecurityRole_1234">
<role-name>admin</role-name>
</security-role>
</security>
</configuration>
</plugin>
</plugins>
이 접근법은 4-5 개의 모듈을 제외 할 수있는 소규모 프로젝트에서는 절대적으로 괜찮습니다. 그러나 내 프로젝트에는 30 세 이상이 있으며 프로젝트를 시작했을 때만 확장 할 수 있습니다.
명시 적으로 선언하는 것 외에도 모듈 당 제외 명령문을 제외하고 와일드 카드를 사용하거나 모든 Maven 종속성 플래그를 제외하여 다른 모든 것을 선언하고 제외하기 위해 모든 Maven 종속성 플래그를 제외 할 수 있습니까? 더 우아한 솔루션을 알고 있습니까?
해결책
명시 적으로 선언하는 것 외에도 모듈 당 제외 명령문을 제외하고 와일드 카드를 사용하거나 모든 Maven 종속성 플래그를 제외하여 다른 모든 것을 선언하고 제외하기 위해 모든 Maven 종속성 플래그를 제외 할 수 있습니까?
그만큼 Maven-Ear-Plugin 이 기능을 상자 외부에서 제공하지 않습니다 (어쨌든 구성하기 쉽다고 생각하지 않습니다. 귀는 매우 정확하게 포장되어야합니다). 그러나 여기서 명확하지 않은 것은 배제해야 할 종속성을 얻는 방법입니다. 답변에 따라 다루는 방법에는 여러 가지가있을 수 있습니다.
- 종속성이라면 일부를 선택 사항으로 선언 할 수 있습니다. 당신의 유물을 전모 적으로 회수하지 않도록 아티팩트.
- 일부 의존성을 "제공된"것으로 표시 할 수 있습니다 (부모님 Pom에 넣고 귀의 폼에서 원하는 것만 재개 할 수 있습니다).
그래도 전체 그림을 보지 않고 대답하기 어렵습니다.
다른 팁
와일드 카드가 지원되는지 확실하지 않지만 자신의 모조를 작성하는 것은 매우 간단합니다. 기존 모조를 래핑 한 다음 와일드 카드 구문과 같은 자신의 디자인을 임의의 구성을 수행 할 수 있습니다.
더 나은 점은 모조를 Maven 팀에 제출할 수 있습니다 (!)
나는 비슷한 문제에 직면하고 있었다. 그러나 그 범위가 제공된 여러 항아리가있는 멀티 모듈 프로젝트가 있었기 때문에, 나는 독립적으로 만들어서 Child Ear Pom에서 부모 태그를 제거했습니다. 그리고 필요한 많은 항아리를 포함하도록 포함합니다.
도움이 되었기를 바랍니다!!!