2017-01-07 4 views
2

В настоящее время у меня проблемы с наложением конфигурации Maven Shade Plugin, я имею в виду, что artifactSet и все параметры конфигурации «под ним» становятся красными, когда я удаляю опции phase и goals (которые призваны быть унаследованы от родителей pluginManagement раздел.Наследование конфигурации в отношении плагина Maven Shade

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

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>2.4.3</version> 

       <executions> 
        <execution> 
         <phase>package</phase> 

         <goals> 
          <goal>shade</goal> 
         </goals> 

         <configuration> 
          <createDependencyReducedPom>false</createDependencyReducedPom> 
         </configuration> 
        </execution> 
       </executions> 
      <plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>2.4.3</version> 

       <executions> 
        <execution> 
         <configuration> 
          <artifactSet> 
           <includes> 
            <include>...</include> 
           </includes> 
          </artifactSet> 
         </configuration> 
        </execution> 
       </executions> 
      <plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
+0

Какова фактическая проблема сейчас? Я имею в виду после обновления – nullpointer

+0

Я ожидал, что параметры «фаза» и «цели» (которые необходимы, чтобы заставить «artifactSet» использовать действительную опцию), чтобы наследоваться от родителя, так что мне не нужно было бы их определять в дочернем модуле, но они, похоже, не наследуются. То, что я подразумевал под «, которые необходимы, чтобы« действительный параметр «artifactSet» использовался », исходит исключительно из ошибок, уходящих после добавления их вручную в дочерний модуль. –

+0

Неверная версия maven-shade-plugin, потому что самая последняя версия - 2.4.3, а не 3.6.0 – khmarbaise

ответ

1

- Вы пропускаете тип <execution> здесь -

Изменение

<executions> 
    <phase>package</phase> 
    <goals> 
     <goal>shade</goal> 
    </goals> 
    <configuration> 
     <createDependencyReducedPom>false</createDependencyReducedPom> 
    </configuration> 
</executions> 

в

<executions> 
    <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>shade</goal> 
     </goals> 
     <configuration> 
      <createDependencyReducedPom>false</createDependencyReducedPom> 
     </configuration> 
    </execution> 
</executions> 

- Чтобы наследовать конфигурацию из родительского pom.xml, вам нужно убедиться, что дочерний pom не определяет плагин снова в пределах <pluginManagement>. Вы можете удалить тег, чтобы наследовать конфигурацию от родителя.

+0

Это просто я, будучи глупым и не форматирующимся правильно, это не настоящая проблема. –

+0

Он не определяет плагин снова в теге 'pluginManagement', но я думаю, что проблема в том, что у родителя есть тег' execute' внутри 'executions' и потому, что вы можете иметь несколько тегов' execute' внутри 'executions 'что дочерний POM наследует выполнение, но когда я добавляю другое' выполнение', он просто предполагает, что я хочу добавить другое выполнение вместо «выбора» существующего. –

+0

@ Julianv.dBerkmortel, который должен быть справедливым для любого экземпляра наследования. – nullpointer

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