문제

새 프로젝트를 위해 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에서 부모 태그를 제거했습니다. 그리고 필요한 많은 항아리를 포함하도록 포함합니다.

도움이 되었기를 바랍니다!!!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top