我正在尝试设置我的 Maven 构建,以便它自动签署 JAR 而无需手动输入密码但是无论我如何尝试配置maven-gpg-plugin
它都会失败或总是要求输入密码。
我已将此页面用作有关如何设置 Maven 的指导settings.xml
:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.executable>gpg2</gpg.executable>
<gpg.keyname>${env.GPG_KEY_NAME}</gpg.keyname>
<gpg.passphrase>${env.GPG_PASS_PHRASE}</gpg.passphrase>
</properties>
</profile>
</profiles>
<servers>
<server>
<id>ossrh</id>
<username>${env.OSSRH_JIRA_USERNAME}</username>
<password>${env.OSSRH_JIRA_PASSWORD}</password>
</server>
</servers>
</settings>
上面的环境变量是在环境中设置的。
这个问题的maven-gpg-plugin
配置我尝试如下设置POM:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
但是当我构建时,我收到以下错误:
gpg: setting pinentry mode 'loopback' failed: Not supported
我试图添加allow-loopback-pinentry
到 gpg-agent.conf 但结果是一样的。如果我<gpgArguments>
从 Maven 插件配置中删除 ,则会弹出询问密码的弹出窗口。
我正在使用 gpg2 版本 2.1.11