Maven создает много банок из одного модуля

У меня есть Maven (многомодульный) проект, который содержит что-то вроде IAction, В этом проекте я реализовал около 50 различных действий. Каждое действие состоит из MyAction.java и MyAction.properties файл.

Я использую Java SPI (java.util.spi) для загрузки всех реализаций во время выполнения. Это все прекрасно работает, но теперь я хочу упаковать каждый Action в одну банку, так что я получаю 50 банок.

Что было бы хорошим способом сделать это? Я действительно не хочу создавать подмодуль для каждого действия, так как это требует много обслуживания.

1 ответ

Решение

Вы можете использовать плагин сборки Maven, чтобы создавать дополнительные артефакты для сборки модуля. Однако обратите внимание, что вам нужно добавить эти артефакты в очередь развертывания после того, как вы их создали, в случае, если вы хотите не только создавать эти артефакты. Это может быть достигнуто, например, с помощью build-helper-maven-plugin,

Однако, что касается итерации более 50 элементов, возможно, вы захотите написать свой собственный специализированный плагин. Существуют дополнительные плагины, которые позволяют выполнять итерацию над другим плагином, но это взорвет ваш POM. Поэтому, если сборка очень специфична, вы можете написать отдельный плагин, специализирующийся на этой задаче. Вы можете сделать это на чистой Java вместо XML, и это не так сложно, как кажется. Есть документация и есть API по умолчанию для Maven. И вы можете проверить исходный код названных плагинов о том, как достичь ваших требований.

Другие вопросы по тегам