防止覆盖 AndroidManifest.xml
使用 android-maven-plugin 更改 AndroidManifest.xml 文件的一个问题是它可能会错误地提交给您的 SCM。
自 android-maven-plugin 版本 3.8.0 以来引入了一项新功能,它使您有机会将更新的 AndroidManifest.xml 保存在另一个位置。
样本:
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.8.2</version>
<extensions>true</extensions>
<configuration>
<renameManifestPackage>com.domain.android${environment}</renameManifestPackage>
<updatedManifestFile>${project.build.directory}/AndroidManifest.xml</updatedManifestFile>
<manifestApplicationLabel>Appname${environment}</manifestApplicationLabel>
<manifest>
<providerAuthorities>
<property>
<name>com.domain.android.vc2.utility.SearchSuggestionsProvider</name>
<value>com.domain.android${environment}.searchsuggestionsprovider</value>
</property>
<property>
<name>com.domain.android.widget.VPWidgetDataProvider</name>
<value>com.domain.android${environment}.widget.provider</value>
</property>
</providerAuthorities>
</manifest>
</configuration>
<executions>
<execution>
<id>update-manifest</id>
<goals>
<goal>manifest-update</goal>
</goals>
</execution>
</executions>
</plugin>
然后元素中的内容updatedManifestFile
将导致使用此名称创建原始 AndroidManifest.xml 文件的副本并用于更新。当然也用于打包apk。
通过将属性环境添加到您的 mvn 命令,您可以创建在同一设备上彼此并排安装的不同构建。
mvn clean package -Denvironment=.beta
更多阅读
此链接解释了这一点以及有关插件属性的更多信息:
http://jayway.github.io/maven-android-plugin/manifest-update-mojo.html#updatedManifestFile