Подписание Maven Jar и целевая перестановка - PullRequest
0 голосов
/ 21 сентября 2011

Я конвертирую проект на основе Ant в Maven. Стандартная сборка работает на данный момент. Я пытаюсь перенести дополнительные цели сборки, указанные в исходном дескрипторе сборки Ant. Наш проект может быть развернут как настольное приложение или как запускаемый клиент Web Start. Вы можете вызвать исходный файл Ant естественным образом с помощью dist, который просто создает проект, но не выполняет постобработку для запуска в Интернете, а также есть специальная цель для JWS, которая вызывает dist, а затем подписывает jar и переупорядочивает файлы дистрибутива, чтобы легко развертывается на веб-сервере.

Я обнаружил, что в Maven есть плагин Jarsigner для подписи кода. В настоящее время мой проект создает основной jar, копирует все зависимости артефактов в target, создает правильный файл манифеста для core jar, а также распаковывает конфигурационный артефакт в target / (он содержит различные вещи, такие как XML и файлы свойств). Однако я не знаю, как вписать в дескриптор Maven следующие дополнительные шаги:

  • Подпишите все файлы JAR (также внешние зависимости), удалив также существующие подписи.
  • Переставьте получившиеся файлы JAR в другой макет каталога. Мне также нужно отредактировать XML-файлы для этой конфигурации и упаковать их в файл конфигурации, который также должен быть подписан.

После внесения изменений проект должен быть собран стандартным способом. Так что Web Start build должен быть необязательным. Должен отметить, что мы используем NetBeans для сборки / отладки / профилирования приложения.

Я немного растерялся, как добиться этого с Maven. Может, кто-нибудь подскажет, как мне двигаться дальше?

1 Ответ

0 голосов
/ 23 сентября 2011

Я решил свою проблему следующим образом:

  • Я создал новый модуль jar для конфигурации клиента веб-запуска.Во время сборки Maven распаковывает в каталог сборки только те части исходного артефакта конфигурации, которые требуются для Web Start (вы можете указать правила фильтрации для плагина зависимых-распаковать).Затем я использую плагин Maven XML для изменения файлов XML с помощью шаблонов XSLT.Наконец, Maven позаботился об упаковке всего этого в артефакт конфигурации клиента запуска через Интернет.

  • Я также создал модуль pom only для реального построения клиента запуска через Интернет.Этот проект не имеет классического вывода артефактов, поэтому только POM устанавливается в репозиторий артефактов.Этот модуль имеет зависимости для исходного кода (исключая исходную конфигурацию) и для артефакта клиента веб-запуска.Я использую возможность копирования зависимостей Maven, чтобы упорядочить файлы JAR в правильной структуре в целевой директории.Наконец, я использую jarsigner Maven, чтобы подписать все банки.

...