Плагин Maven 2, сборка + верный - PullRequest
3 голосов
/ 12 февраля 2009

Если я определил плагин в теге и хочу использовать его в команде моего сайта, как мне это сделать? Нужно ли мне снова определять плагин в теге ?

А как насчет конфигурации, которую я, вероятно, выполнил в теге build и хочу иметь место и в теге report? (я не хочу указывать, например, местоположение файла конфигурации дважды, чтобы использовать плагин в 2 жизненных циклах)

В качестве примера: я определяю свой плагин checkstyle в теге build и настраиваю пользовательское расположение для правил, которые будут использоваться. Я делаю это, потому что правила упакованы в банку, поэтому я могу определить это как зависимость. Это было бы невозможно, если бы я сделал это в теге отчетности. Но мне нужно также использовать этот плагин в теге отчетов, чтобы Surfire мог сгенерировать отчет для контрольного стиля. Поэтому я должен определить плагин в теге отчетности, а также.

Может быть, я делаю что-то совершенно не так, но я не понимаю, как я могу это сделать, кроме этого. Что мне не нравится, так это то, что в моем pom дважды есть один плагин (в теге build и теге report).

Я надеюсь, что кто-нибудь может проверить, что мое решение в порядке, или дать мне совет, как это сделать лучше.

ТНХ

Куку

Ответы [ 2 ]

4 голосов
/ 12 февраля 2009

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

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

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
       <configuration>
            <skip>true</skip>
       </configuration>
   ... More plugin cofniguration stuff ...
 </plugin>

Если вы в одном или нескольких вложенных модулях хотите включить этот плагин, вы можете просто сказать:

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
       <configuration>
            <skip>false</skip>
       </configuration>
   ... Maybe Configuration ....
 </plugin>

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

Я думаю, это то, что вы ищете?

2 голосов
/ 16 февраля 2009

В дополнение к ответу KRosenvold, вы также можете минимизировать конфигурацию, объявив плагин в разделе <pluginManagment>, возможно, на вашей верхней помпе в цепочке наследования , а затем вы можете опустить указание версия плагина во всех других местах, которые вы заявляете, что он использует .

Родительский Pom:

<pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-1</version>
        </plugin>
    </plugins>
<pluginManagement>

Ребенок Пом:

<plugins>
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
    </plugin>
</plugins>
...