Maven-ear-плагин - исключая несколько модулей, т. е.банки, войны и т. Д

StackOverflow https://stackoverflow.com/questions/2453201

Вопрос

Я использовал плагин Maven EAR для создания своих файлов ear для нового проекта.Я заметил, что в документации к плагину вы можете указать инструкции exclude для модулей.Например, конфигурация моего плагина выглядит следующим образом...

  <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, и мы только начали проект, так что по мере его расширения число участников, вероятно, будет расти.

Помимо явного объявления операторов exclude для каждого модуля, возможно ли использовать подстановочные знаки или и исключить флаг всех зависимостей maven, чтобы включать только те модули, которые я объявляю, и исключать все остальное?Кто-нибудь знает о более элегантном решении?

Это было полезно?

Решение

Помимо явного объявления операторов exclude для каждого модуля, возможно ли использовать подстановочные знаки или и исключить флаг всех зависимостей maven, чтобы включать только те модули, которые я объявляю, и исключать все остальное?

Тот Самый maven-ear-плагин не предоставляет эту функцию "из коробки" (и я не думаю, что ее было бы легко настроить в любом случае, ear должен быть упакован очень точно).Однако, что здесь непонятно, так это то, как вы получаете зависимости, которые вам нужно исключить.В зависимости от вашего ответа, может быть несколько способов справиться с ними:

  • Возможно, вы могли бы объявить некоторые из них необязательными, если они зависят от ваш артефакты, которых следует избегать, чтобы извлекать их транзитивно.
  • Возможно, вы могли бы пометить некоторые зависимости как "предоставленные" (и поместить их в родительский pom, повторно объявив только то, что вы хотите в POM EAR).

Однако трудно ответить, не видя всей картины в целом.

Другие советы

Не уверен, поддерживаются ли подстановочные знаки, но написать свой собственный моджо очень просто.Вы можете обернуть существующий моджо, а затем использовать произвольную конфигурацию собственного дизайна, например синтаксис подстановочных знаков.

А еще лучше, вы можете отправить свое моджо команде maven (!)

я столкнулся с аналогичной проблемой.но это произошло потому, что у меня был многомодульный проект с несколькими банками, имеющими предоставленную область действия, я просто удалил родительский тег из дочернего уха, сделав его независимым.а затем с помощью include включить столько баночек, сколько мне нужно.

надеюсь это поможет!!!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top