2013-05-28 3 views
2

Если у меня есть несколько исполнений плагина Maven и у них есть хотя бы одно из значений конфигурации, есть ли способ поделиться этой конфигурацией между всеми запусками плагина.Конфигурация Maven между несколькими реализациями плагинов

Рассмотрим тривиальный случай сборки плагина с двумя запусками:

<plugin> 
    <!-- ID, version... --> 
    <executions> 
     <execution> 
      <id>ID1</id> 
      <configuration> 
       <myConfig>foo</myConfig> 
       ... 
      </configuration> 
     </execution> 
     <execution> 
      <id>ID2</id> 
      <configuration> 
       <myConfig>foo</myConfig> 
       ... 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Как я могу переписать так, что оба ID1 и ID2 казни использовать такое же значение для конфигурации myConfig?

+0

Предполагается ли это на самом деле читать ID2 для второго ? (если это так, то он ответит на мой вопрос, а это не то, что вы просили, но показывает, как обойти ошибку, которую я получаю, когда пытаюсь построить свою банку с двумя исполнениями в одном и том же плагине :)) –

+0

проверил ее в моем собственном коде с тем же идентификатором, и он выдает повторяющуюся ошибку execute.id. Отредактировал этот вопрос, чтобы показать, что идентификатор выполнения должен быть другим. –

ответ

4

Почему бы не переместить общую конфигурацию за пределами конкретных казней?

<plugin> 
    <!-- ID, version... --> 
    <configuration> 
     <commonConfig>foo</commonConfig> 
    </configuration> 
    <executions> 
     <execution> 
      <id>ID1</id> 
      <configuration> 
       <specificConfig>bar</specificConfig> 
      </configuration> 
     </execution> 
     <execution> 
      <id>ID1</id> 
      <configuration> 
       <specificConfig>baz</specificConfig> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Это работает для некоторых плагинов, которые я использую (например, gmaven-плагин) и в Maven documentation я не нашел никаких доказательств того, что не должно работать.

+0

Это, похоже, не работает для 'exec-maven-plugin'. Когда конфигурация определена для исполнения, любая внешняя конфигурация игнорируется. –

1

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

<project> 
    ... 
    <properties> 
     <myConfig>foo</myConfig> 
    </properties> 
    ... 
</project> 

Затем используйте его как этот

<execution> 
    <id>ID1</id> 
    <configuration> 
     <myConfig>${myConfig}</myConfig> 
     ... 
    </configuration> 
</execution> 
<execution> 
    <id>ID2</id> 
    <configuration> 
        <myConfig>${myConfig}</myConfig> 
         ... 
    </configuration> 
</execution> 
+0

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

+0

Хотя кажется разумным, что будет разрешено, я не знаю, как это сделать. –

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