Maven-ear-plugin - исключая несколько модулей, то есть банок, войн и т. Д. - PullRequest
3 голосов
/ 16 марта 2010

Я использовал плагин Maven EAR для создания файлов 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, чтобы включить только те модули, которые я объявляю, и исключить все остальное? Кто-нибудь знает о более элегантном решении?

Ответы [ 3 ]

1 голос
/ 17 марта 2010

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

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

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

Трудно ответить, не видя всей картины, хотя.

1 голос
/ 16 марта 2010

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

Более того, вы можете отправить свой моджахен команде maven (!)

0 голосов
/ 19 сентября 2013

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

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

...