如何避免AndoridManifest覆盖maven

时间:2014-12-04 20:25:34

标签: android maven android-manifest apk android-maven-plugin

我的项目几乎等于android-quickstart archetype

mvn archetype:generate \
-DarchetypeArtifactId=android-quickstart \
-DarchetypeGroupId=de.akquinet.android.archetypes \
-DarchetypeVersion=1.0.11 \
-DgroupId=your.company \
-DartifactId=my-android-application

我在pom.xml中添加了一个aar依赖项:

<dependency>
  <groupId>com.my.company</groupId>
  <artifactId>my-lib</artifactId>
  <version>0.6.41-SNAPSHOT</version>
  <type>aar</type>
</dependency>

并配置android-maven-plugin来合并清单:

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <configuration>
                <mergeManifests>true</mergeManifests>
            </configuration>
            <version>${android.plugin.version}</version>
            <extensions>true</extensions>
        </plugin>
    </plugins>
</pluginManagement>

然后我mvn clean install

我认为这将合并两个清单并将结果直接放入apk(在my-app/target/my-app.apk/AndroidManifest.xml中)。但它取代了原来的AndroidManifest.xml(在my-app/AndroidManifest.xml中)。

有没有办法让原始的AndroidManifest.xml完好无损(就像Gradle在Android Studio中那样)?

1 个答案:

答案 0 :(得分:3)

<强>更新

android-maven-plugin 4.1.0开始,这是默认行为,不需要其他配置。

将这些行添加到configuration

<androidManifestFile>${project.build.directory}/AndroidManifest.xml</androidManifestFile>
<sourceManifestFile>${project.basedir}/AndroidManifest.xml</sourceManifestFile>
<updatedManifestFile>${project.build.directory}/AndroidManifest.xml</updatedManifestFile>

这应首先复制原始清单,然后更新复制的文件。