2012-06-06 48 views
1

我创建了一个Android Maven项目,正如本文中所述(link to post)。我使用最后一个原型:android-release。如何使用maven-android-plugin项目的外部settings.xml中的maven设置?

所以一切工作正常,除非我想发布一个版本,我不知道如何通过证书属性。我创建了一个settings.xml中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?> 

<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-debug</id> 
     <properties> 
      <sign.keystore>/Users/me/.android/debug.keystore</sign.keystore> 
      <sign.alias>androiddebugkey</sign.alias> 
      <sign.storepass>android</sign.storepass> 
      <sign.keypass>android</sign.keypass> 
     </properties> 
    </profile> 

    <profile> 
     <id>android-release</id> 
     <properties> 
      <sign.keystore>/Users/me/myKeystore.keystore</sign.keystore> 
      <sign.alias>myAlias</sign.alias> 
      <sign.storepass><![CDATA[myPassword]]></sign.storepass> 
      <sign.keypass><![CDATA[myPassword]]></sign.keypass> 
     </properties> 
    </profile> 

</profiles> 

然后我运行:

mvn -s setttings.xml clean release:prepare release:perform -Pandroid-release 

但我一直忽略了Android的释放曲线定义的值。

任何想法如何让这个工作?当我刚运行时:

mvn -s setttings.xml clean install -Pandroid-release,release 

它建立一个apk并用正确的证书签名。所以也许它只是maven-enforcer插件,它不能从settings.xml读取属性?

回答

2

MVN -s setttings.xml干净发布:准备发布:执行-Pandroid释放

我不知道答案,为什么它一直忽略了Android的释放曲线定义的值。

然而,如果你用maven释放小插件,我们用正常的方式来实现你想要的是添加你想在发布阶段触发以下设置的配置文件:

<profile> 
    <id>android-release</id> 
    <properties> 
     <sign.keystore>/Users/me/myKeystore.keystore</sign.keystore> 
     <sign.alias>myAlias</sign.alias> 
     <sign.storepass><![CDATA[myPassword]]></sign.storepass> 
     <sign.keypass><![CDATA[myPassword]]></sign.keypass> 
    </properties> 
    <!-- via this activation the profile is automatically used when the release 
     is done with the maven release plugin --> 
    <activation> 
     <property> 
      <name>performRelease</name> 
      <value>true</value> 
     </property> 
    </activation> 
</profile> 

所以现在如果你使用mvn -s setttings.xml clean release:prepare release:perform,maven-release-plugin会自动提取profile android-release

请注意,配置文件在发布阶段自动激活,如果没有涉及maven-release-plugin,您仍然可以使用经典的方式mvn -s setttings.xml clean install -Pandroid-release使构建过程使用特定的profile android-release

查看maven-release-plugin doc了解更多详情。

相关问题