Передайте список параметров в Maven с помощью интерфейса командной строки (gpg: sign-and-deploy-file) - PullRequest
1 голос
/ 26 февраля 2020

В данный момент я застрял при развертывании одного файла в моем реестре Maven. Я использую эту цель для развертывания в файлы с помощью командной строки: https://maven.apache.org/plugins/maven-gpg-plugin/sign-and-deploy-file-mojo.html

Мне нужно передать 2 gpgArguments:

<gpgArguments>
    <arg>--pinentry-mode</arg>
    <arg>loopback</arg>
</gpgArguments>

В противном случае процесс подписания не удастся, потому что я использую Github Actions и получаю сообщение об ошибке, если они не установлены (gpg: подпись не удалась: неподходящий ioctl для устройства)
В плагине MOJO есть параметр "gpgArguments", который помечен как «Список».

Можно ли передать Список параметров с помощью CLI? Я много чего перепробовал и тоже немного погуглил, и ничто не помогает.

Моя текущая команда выглядит так, но она не интерпретирует gpgArguments:

mvn gpg:sign-and-deploy-file -DpomFile=java/pom.xml -Dfile=./executable/exe -Durl=https://oss.sonatype.org/content/repositories/snapshots -Dclassifier=linux -DrepositoryId=ossrh -Dpackaging=exe -DgpgArguments=--pinentry-mode,loopback

Если это невозможно, каковы мои альтернативы? Спасибо:)

1 Ответ

1 голос
/ 26 февраля 2020

Оказывается, что у "gpgArguments" нет "User Property", через который вы можете пройти через CLI.

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

Я создал файл оболочки под названием "gpghack. sh", который содержит gpg --pinentry-mode loopback "$@".
Затем я добавил этот параметр в свой цель sign-and-deploy-file: -Dgpg.executable="./gpghack.sh Теперь, когда Maven вызывает GPG, он будет использовать shell-файл, который всегда добавляет нужные мне опции.

Не красиво, но пока работает. .

...