There is a nice Maven plugin helping you signing your Android app – the Maven Jar Signer Plugin. If you want to learn more about Maven integration in an android project take a look at this article.

Maven Profile Setup

Add the following code to your pom.xml

<?xml version="1.0"?>
<profiles>
    <profile>
        <id>sign</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jarsigner-plugin</artifactId>
                    <version>1.2</version>
                    <executions>
                        <execution>
                            <id>signing</id>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                            <phase>package</phase>
                            <inherited>true</inherited>
                            <configuration>
                                <archiveDirectory/>
                                <includes>
                                    <include>target/*.apk</include>
                                </includes>
                                <keystore>path/to/keystore</keystore>
                                <storepass>storepasword</storepass>
                                <keypass>keypassword</keypass>
                                <alias>key-alias</alias>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>maven-android-plugin</artifactId>
                    <inherited>true</inherited>
                    <configuration>
                        <sign>
                            <debug>false</debug>
                        </sign>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

Signing

Trigger the profile with the following command

mvn install-Psign

Other Goals

  • jarsigner:sign – signs your project’s artifacts

  • jarsigner:verify – verifies the project’s artifact

Useful command line options:

  • Disable the plugin

    mvn -Djarsigner.skip=true
  • Disable attachment processing

    mvn -Djarsigner.attachments=false

Article Updates

  • 2015-03-03: Table of contents and headings added.