Я поддерживаю небольшой Java компонент, опубликованный в Maven Central. Чтобы успешно опубликовать sh артефакт, для всех артефактов требуются файлы сигнатур pgp / gpg. Следуя указаниям здесь: https://central.sonatype.org/pages/apache-maven.html#gpg -signed-components , я могу добавить этот плагин к своему пом. xml вот так без проблем.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
...
и я прикрепляю его к этап проверки или установки. Теперь, когда я запускаю: "mvn install" или "mvn deploy", файлы .as c генерируются автоматически по желанию. Примечание: вам также нужно установить и настроить ваш pgp / gpg механизм для правильной работы.
Это нормально для меня, как сопровождающего артефакта, но если кто-то еще хочет клонировать мой исходный код, измените его , а затем запустите mvn install, чтобы они могли сделать локально модифицированную версию компонента доступной для других своих проектов, им также необходимо правильно настроить все эти механизмы pgp / gpg, что может быть проблемой. И им, вероятно, наплевать на наличие файлов подписи.
Мой вопрос: есть ли рекомендуемая настройка pom, чтобы сопровождающий компонента мог генерировать файлы подписи .as c, когда это необходимо для развертывания (например, в Maven Central), но нормальное использование команд Maven не требует генерации подписи?
Я полагаю, я мог бы использовать профиль в моем pom для обработки этого. Я нашел решение, которое довольно просто. Вместо того, чтобы добавить maven-gpg-plugin в мой pom, я понял, что могу просто сделать это:
mvn clean install org. apache .maven.plugins: maven-gpg-plugin: sign deploy
Это очищает все, создает и устанавливает все артефакты локально, подписывает все сгенерированные артефакты, а затем развертывает все сгенерированные артефакты, включая файлы сигнатур, на цели развертывания.
Это точно делает что я хочу в 1 строке без модификации пом, что довольно круто. Но есть ли другие «лучшие» способы? В любом случае, я подумал, что размещение этого способа может быть полезным для других.