Maven2: Как убедиться, что сборка Maven использует конкретную версию плагина? - PullRequest
4 голосов
/ 27 августа 2009

Я только что нашел что-то странное в управлении плагином Maven.

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

Если я использую раздел отчетов POM для создания сайта моего проекта с помощью команды:

mvn site

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

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>2.0.1</version>
        </plugin>
    </plugins>
</reporting>

Теперь, если я хочу, чтобы мой сайт генерировался на определенной фазе жизненного цикла сборки, скажем, prepare-package (и стадии target), я добавляю в раздел следующий раздел:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>

        <executions>
            <execution>
                <phase>prepare-package</phase>
                <goals>
                    <goal>stage</goal>
                </goals>
            </execution>
        </executions>
     </plugin>
</plugins>

И вот я застрял с версией плагина сайта maven, пришедшей из Super POM, т.е. 2,0-бета-7. Даже если я пытаюсь добавить указание конфигурации, я действительно хочу использовать версию 2.0.1, она все еще использует 2.0-бета-7. Я также попытался добавить версию в раздел, потому что конфигурация, которая используется в разделе отчетов, должна применяться и к разделу сборки. Но это тоже не работает.

Может быть, я что-то пропустил, и поправьте меня, если я ошибаюсь, но это похоже на ошибку. Есть ли необходимость в стороне Maven для исправления версии плагина, которая будет использоваться в процессе сборки?

Спасибо!

Ответы [ 2 ]

7 голосов
/ 27 августа 2009

Если вы зададите раздел pluginManagement в pom, вы можете объявить версии, используемые для любых плагинов, это переопределит версии, унаследованные от super POM

Например:

<pluginManagement>
  <plugins>
    <plugin>
      <artifactId>maven-site-plugin</artifactId>
      <version>2.0.1</version>
    </plugin>       
  </plugins>
</pluginManagement>

Вы можете обратиться к документации , чтобы узнать, как настроить pluginManagement.

1 голос
/ 27 августа 2009

Я думаю, вам нужно использовать раздел " pluginManagement ", чтобы установить глобальный номер версии плагина.

...