Class AbstractGpgMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
    Direct Known Subclasses:
    GpgSignAttachedMojo, SignAndDeployFileMojo

    public abstract class AbstractGpgMojo
    extends org.apache.maven.plugin.AbstractMojo
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean defaultKeyring
      Whether to add the default keyrings from gpg's home directory to the list of used keyrings.
      private java.lang.String executable
      The path to the GnuPG executable to use for artifact signing.
      private java.util.List<java.lang.String> gpgArguments
      Sets the arguments to be passed to gpg.
      private java.io.File homedir
      The directory from which gpg will load keyrings.
      private boolean interactive  
      private java.lang.String keyname
      The "name" of the key to sign with.
      private java.lang.String lockMode
      The lock mode to use when invoking gpg.
      private java.lang.String passphrase
      The passphrase to use when signing.
      private java.lang.String passphraseServerId
      Server id to lookup the passphrase under Maven settings.
      private java.lang.String publicKeyring
      The path to a public keyring to add to the list of keyrings.
      private java.lang.String secretKeyring
      The path to a secret keyring to add to the list of keyrings.
      private org.sonatype.plexus.components.sec.dispatcher.SecDispatcher securityDispatcher
      Maven Security Dispatcher
      private org.apache.maven.settings.Settings settings
      Current user system settings for use in Maven.
      private boolean useAgent
      Passes --use-agent or --no-use-agent to gpg.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractGpgMojo()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void loadGpgPassphrase()
      Load and decrypt gpg passphrase from Maven settings if not given from plugin configuration
      (package private) AbstractGpgSigner newSigner​(org.apache.maven.project.MavenProject project)  
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.apache.maven.plugin.Mojo

        execute
    • Field Detail

      • homedir

        @Parameter(property="gpg.homedir")
        private java.io.File homedir
        The directory from which gpg will load keyrings. If not specified, gpg will use the value configured for its installation, e.g. ~/.gnupg or %APPDATA%/gnupg.
        Since:
        1.0
      • passphrase

        @Parameter(property="gpg.passphrase")
        private java.lang.String passphrase
        The passphrase to use when signing. If not given, look up the value under Maven settings using server id at 'passphraseServerKey' configuration.
      • passphraseServerId

        @Parameter(property="gpg.passphraseServerId",
                   defaultValue="gpg.passphrase")
        private java.lang.String passphraseServerId
        Server id to lookup the passphrase under Maven settings.
        Since:
        1.6
      • keyname

        @Parameter(property="gpg.keyname")
        private java.lang.String keyname
        The "name" of the key to sign with. Passed to gpg as --local-user.
      • useAgent

        @Parameter(property="gpg.useagent",
                   defaultValue="true")
        private boolean useAgent
        Passes --use-agent or --no-use-agent to gpg. If using an agent, the passphrase is optional as the agent will provide it. For gpg2, specify true as --no-use-agent was removed in gpg2 and doesn't ask for a passphrase anymore.
      • interactive

        @Parameter(defaultValue="${settings.interactiveMode}",
                   readonly=true)
        private boolean interactive
      • executable

        @Parameter(property="gpg.executable")
        private java.lang.String executable
        The path to the GnuPG executable to use for artifact signing. Defaults to either "gpg" or "gpg.exe" depending on the operating system.
        Since:
        1.1
      • defaultKeyring

        @Parameter(property="gpg.defaultKeyring",
                   defaultValue="true")
        private boolean defaultKeyring
        Whether to add the default keyrings from gpg's home directory to the list of used keyrings.
        Since:
        1.2
      • secretKeyring

        @Parameter(property="gpg.secretKeyring")
        private java.lang.String secretKeyring
        The path to a secret keyring to add to the list of keyrings. By default, only the secring.gpg from gpg's home directory is considered. Use this option (in combination with publicKeyring and defaultKeyring if required) to use a different secret key. Note: Relative paths are resolved against gpg's home directory, not the project base directory.
        Since:
        1.2
      • publicKeyring

        @Parameter(property="gpg.publicKeyring")
        private java.lang.String publicKeyring
        The path to a public keyring to add to the list of keyrings. By default, only the pubring.gpg from gpg's home directory is considered. Use this option (and defaultKeyring if required) to use a different public key. Note: Relative paths are resolved against gpg's home directory, not the project base directory.
        Since:
        1.2
      • lockMode

        @Parameter(property="gpg.lockMode")
        private java.lang.String lockMode
        The lock mode to use when invoking gpg. By default no lock mode will be specified. Valid values are once, multiple and never. The lock mode gets translated into the corresponding --lock-___ command line argument. Improper usage of this option may lead to data and key corruption.
        Since:
        1.5
        See Also:
        the --lock-options
      • gpgArguments

        @Parameter
        private java.util.List<java.lang.String> gpgArguments
        Sets the arguments to be passed to gpg. Example:
         <gpgArguments>
           <arg>--no-random-seed-file</arg>
           <arg>--no-permission-warning</arg>
         </gpgArguments>
         
        Since:
        1.5
      • settings

        @Parameter(defaultValue="${settings}",
                   readonly=true)
        private org.apache.maven.settings.Settings settings
        Current user system settings for use in Maven.
        Since:
        1.6
      • securityDispatcher

        @Component(hint="mng-4384")
        private org.sonatype.plexus.components.sec.dispatcher.SecDispatcher securityDispatcher
        Maven Security Dispatcher
        Since:
        1.6
    • Constructor Detail

      • AbstractGpgMojo

        public AbstractGpgMojo()
    • Method Detail

      • newSigner

        AbstractGpgSigner newSigner​(org.apache.maven.project.MavenProject project)
                             throws org.apache.maven.plugin.MojoExecutionException,
                                    org.apache.maven.plugin.MojoFailureException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
        org.apache.maven.plugin.MojoFailureException
      • loadGpgPassphrase

        private void loadGpgPassphrase()
                                throws org.apache.maven.plugin.MojoFailureException
        Load and decrypt gpg passphrase from Maven settings if not given from plugin configuration
        Throws:
        org.apache.maven.plugin.MojoFailureException