Maven включает еще один pom для конфигурации плагина

Есть ли способ включить еще один pom или информацию в maven pom?

У меня есть несколько помпонов, которые в основном не связаны между собой или имеют разные родительские помпы. Тем не менее, для упаковки требуется одинаковый для всех проектов Манифест.

Итак, в настоящее время у меня есть помпа:

<plugin>
  <artifactId>maven-assembly-plugin>
   <!--- .... -->
    <archive>
      <manifestEntries>
        <build-date>....</build-date>
        <build-nr>.....</build-nr>

и т. д. и т. д.

Я хотел бы избежать вставки этой конфигурации во все несколько помпонов.

Итак, как я могу поделиться конфигурацией плагина без наследования?

Спасибо


person Emerson    schedule 20.04.2011    source источник


Ответы (2)


Один из способов сделать это — использовать раздел pluginManagement. plugin конфигурации могут быть определены в этом разделе в родительском pom и будут доступны для унаследованных pom для использования как есть или переопределения.

Здесь находится соответствующая документация maven. В вашем конкретном случае вам нужно будет соответствующим образом организовать свои проекты/poms.

person Raghuram    schedule 20.04.2011

Единственный правильный ответ - использовать наследование. Иметь унаследованного предка с этой конфигурацией. Поскольку у вас есть существующие родительские POM, они должны наследоваться от этого нового родителя. Если это невозможно, переосмыслите иерархию ваших проектов Maven, иначе вам придется скопировать и вставить одну и ту же конфигурацию в каждый файл и добавить комментарий, указывающий, что раздел не должен изменяться / должен поддерживаться в соответствии с [insert список проектов здесь].

TLDR; Наследование разработано специально для решения таких ситуаций, как ваша. Если вы не можете его использовать, не пытайтесь обойти его - либо реструктурируйте свои POM, либо скопируйте и вставьте!

person KomodoDave    schedule 31.12.2012