Maven release: выполнить не распознает параметры хранилища ключей

Я сгенерировал свой проект, используя архетип версии для Android .
В его документации указано, что в файл settings.xml добавлен профиль android-release .

Мой ~/.m2/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>android-release</id> <properties> <sign.keystore>absolute path</sign.keystore> <sign.alias>my_alias</sign.alias> <sign.storepass>pass</sign.storepass> <sign.keypass>pass</sign.keypass> </properties> </profile> </profiles> </settings> 

Мой родительский файл pom.xml почти тот же, что и в архетипе (версия 1.0.8):

 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> при <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> , <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> при <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> , <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> при <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> , <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> к <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> к <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> во <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myapp-android</groupId> <artifactId>myapp-android-parent</artifactId> <version>1.1-SNAPSHOT</version> <packaging>pom</packaging> <name>myapp-android - Parent</name> <modules> <module>myapp-android</module> <module>myapp-android-it</module> </modules> <scm> <url>....</url> <connection>....</connection> <developerConnection>....</developerConnection> <tag>HEAD</tag> </scm> <properties> <platform.version>4.1.1.4</platform.version> <android.dex.optimize>false</android.dex.optimize> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <repositories> <repository> <id>ignition-releases</id> <url>http://nexus.qype.com/content/repositories/releases</url> </repository> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> <repository> <id>com.jakewharton</id> <url>http://r.jakewharton.com/maven/release</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>android</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.android</groupId> <artifactId>android-test</artifactId> <version>${platform.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <inherited>true</inherited> <configuration> <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> <assetsDirectory>${project.basedir}/assets</assetsDirectory> <resourceDirectory>${project.basedir}/res</resourceDirectory> <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> <sdk> <platform>16</platform> </sdk> <undeployBeforeDeploy>false</undeployBeforeDeploy> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.3</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <!-- We need this since our pom.xml is not inside repo root --> <arguments>-f ./android/pom.xml</arguments> </configuration> </plugin> <plugin> <artifactId>maven-jarsigner-plugin</artifactId> <version>1.2</version> <inherited>true</inherited> <configuration> <removeExistingSignatures>true</removeExistingSignatures> <archiveDirectory /> <archive>${project.build.directory}/${project.build.finalName}.${project.packaging}</archive> <verbose>true</verbose> <certs>true</certs> <keystore>${sign.keystore}</keystore> <alias>${sign.alias}</alias> <storepass>${sign.storepass}</storepass> <keypass>${sign.keypass}</keypass> </configuration> </plugin> <plugin> <groupId>com.pyx4me</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.4</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard</artifactId> <version>4.4</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <proguardVersion>4.4</proguardVersion> </configuration> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>release</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.5.0</version> <configuration> <release>true</release> </configuration> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-signing-properties</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireProperty> <property>sign.keystore</property> <message>The 'sign.keystore' property is missing. It must contain the path to the keystore used to sign the application. </message> </requireProperty> <requireFilesExist> <files> <file>${sign.keystore}</file> </files> <message>The 'sign.keystore' property does not point to a file. It must contain the path to the keystore used to sign the application. </message> </requireFilesExist> <requireProperty> <property>sign.alias</property> <message>The 'sign.alias' property is missing. It must contain the key alias used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.storepass</property> <message>The 'sign.storepass' property is missing. It must contain the password of the keystore used to sign the application. </message> </requireProperty> <requireProperty> <property>sign.keypass</property> <message>The 'sign.keypass' property is missing. It must contain the password of the key used to sign the application. </message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>linux</id> <activation> <os> <family>unix</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> <!-- mac profile has to be after unix since running on mac will trigger both --> <profile> <id>mac</id> <activation> <os> <family>mac</family> </os> </activation> <properties> <!-- absolute path --> <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> --> <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ --> <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path> <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path> <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path> </properties> </profile> </profiles> </project> 

Когда я запускаю mvn release:perform похоже, что он не находит информацию о хранилище ключей:

 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] Building myapp-android - Parent 1.0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] [INFO] [INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-signing-properties) @ myapp-android-parent --- [INFO] [WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireProperty failed with message: [INFO] The 'sign.keystore' property is missing. It must contain the path to the [INFO] keystore used to sign the application. [INFO] [WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireFilesExist failed with message: [INFO] The 'sign.keystore' property does not point to a file. It must contain the [INFO] path to the keystore used to sign the application. [INFO] Some required files are missing: [INFO] (an empty filename was given and allowNulls is false) [INFO] [INFO] [WARNING] Rule 2: org.apache.maven.plugins.enforcer.RequireProperty failed with message: [INFO] The 'sign.alias' property is missing. It must contain the key alias used to [INFO] sign the application. [INFO] [WARNING] Rule 3: org.apache.maven.plugins.enforcer.RequireProperty failed with message: [INFO] The 'sign.storepass' property is missing. It must contain the password of [INFO] the keystore used to sign the application. [INFO] [WARNING] Rule 4: org.apache.maven.plugins.enforcer.RequireProperty failed with message: [INFO] The 'sign.keypass' property is missing. It must contain the password of the [INFO] key used to sign the application. [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] Reactor Summary: [INFO] [INFO] [INFO] [INFO] myapp-android - Parent ......................... FAILURE [0.577s] [INFO] [INFO] myapp-android - Application .................... SKIPPED [INFO] [INFO] myapp-android-it - Integration tests ........... SKIPPED [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] BUILD FAILURE [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] Total time: 1.862s [INFO] [INFO] Finished at: Thu Jan 31 21:24:41 CET 2013 [INFO] [INFO] Final Memory: 7M/81M [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.0:enforce (enforce-signing-properties) on project myapp-android-parent: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1] [INFO] [ERROR] [INFO] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [INFO] [ERROR] Re-run Maven using the -X switch to enable full debug logging. [INFO] [ERROR] [INFO] [ERROR] For more information about the errors and possible solutions, please read the following articles: [INFO] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] myapp-android - Parent ......................... FAILURE [22.389s] [INFO] myapp-android - Application .................... SKIPPED [INFO] myapp-android-it - Integration tests ........... SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 23.799s [INFO] Finished at: Thu Jan 31 21:24:41 CET 2013 [INFO] Final Memory: 9M/81M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3:perform (default-cli) on project myapp-android-parent: Maven execution failed, exit code: '1' -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

Я попытался также передать параметры хранилища ключей в release:perform

 mvn release:perform -Dsign.keystore=/path/to/keystore \ -Dsign.alias=key-alias \ -Dsign.storepass=keystore-password \ -Dsign.keypass=key-password 

Но с тем же эффектом.

Любая идея о том, как я могу заставить ее работать? Это, наверное, что-то глупое, но я новичок в Maven, и я не могу понять это.

    Благодаря этой дискуссии я обнаружил, что проблема была вызвана ошибкой Maven 3.0.3. Обновление Maven 3.0.4 полностью решило мою проблему.

    Выпуск Maven: выполнение цели выполняется в другом контексте, а ваши параметры java не распространяются.

    Попробуйте использовать опцию -Darguments . Например: mvn release:perform -Darguments="-Dsign.keystore=/path/to/keystore -Dsign.alias=key.alias" и так далее

    Другие варианты этой цели доступны на странице руководства: http://maven.apache.org/maven-release/maven-release-plugin/perform-mojo.html