2016-07-06 8 views
1

Общее: Мне нужно выполнить плагин maven из командной строки с переопределенной версией зависимостей (зависимостями плагина). Плагин не будет определен в проекте pom.Переопределить версию зависимостей, используемую во время выполнения из командной строки

Бетон: Мне нужно выполнить maven-checkstyle-plugin как шаг в сборке teamcity; этот плагин не будет определен project pom. Я использую следующие параметры командной строки:

mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check -Dencoding=UTF-8 

Но мне нужно выполнить плагин с последними checkstyle как показал here.

POM XML:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.17</version> 
</plugin> 

командной строки:

mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check 

POM XML:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.17</version> 
     <dependencies> 
     <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>7.0</version> 
     </dependency> 
     </dependencies> 
    </plugin> 

командной строки:

? 
+0

Почему бы не определить в пом? Не имеет смысла. Версия командной строки Overridding невозможна в командной строке. Зачем тебе это нужно? – khmarbaise

+0

Вы, скорее всего, не сможете этого сделать. Возможным трюком было бы выполнить шаг предварительной сборки, где вы создадите копию целевого файла 'pom.xml', улучшите его добавление этой конфигурации плагина в раздел' pluginManagement', затем выполните сборку на этом альтернативном файле pom через параметр '-f' (например,' mvn -f extended-pom.xml clean install'). Лучшим решением было бы иметь родительский pom предприятия maven, где можно было бы поставить CI соответствующие проверки/требования, используемые во всех проектах maven. –

ответ

0

Лучшей практикой является создание Maven profile с вашими настройками, а затем активируйте этот профиль при построении на CI.

Пример профиля:

<profiles> 
<profile> 
    <id>ci</id> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.17</version> 
     <dependencies> 
      <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>7.0</version> 
      </dependency> 
     </dependencies> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 
</profiles> 

Пример, как включить его на TeamCity: mvn checkstyle:check -Pci

Обычно execution раздел добавляется в профиль конфигурации, чтобы сделать плагин цели запустить автоматически, как часть нормальной сборки при некотором фаза, но только тогда, когда профиль ci включен, например, mvn install -Pci.

 Смежные вопросы

  • Нет связанных вопросов^_^