1

我目前在将单个文件部署到我的 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

如果这不可能,我的替代方案是什么?谢谢 :)

4

1 回答 1

1

事实证明,“gpgArguments”没有“用户属性”,这是您可以使用 CLI 传递的。

经过大量试验和错误后,我发现了一个 hack,这是我目前找到的唯一解决方案。虽然它不是很优雅。

我创建了一个名为“gpghack.sh”的 shell 文件,其中包含gpg --pinentry-mode loopback "$@".
然后我将此参数添加到我的签名和部署文件目标中: -Dgpg.executable="./gpghack.sh 现在当 Maven 调用 GPG 时,它将使用总是添加我需要的选项的 shell 文件。

不漂亮,但它现在有效..

于 2020-02-26T17:46:00.280 回答