2014-12-04 99 views
1

我有一个项目几乎等于该android-quickstart archetype如何避免AndoridManifest与Maven覆盖

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

我添加了一个AAR依赖于pom.xml中:

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

和配置android- Maven的插件合并清单:

<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完整(如摇篮呢Android Studio中)?

回答

3

UPDATE:

由于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> 

这应该先复制您的原始舱单,然后更新复制的文件。

+0

没有工作。这是记录在任何地方? – pomber 2014-12-04 21:02:59

+0

[错误]未能执行目标com.jayway.maven.plugins.android.generation2:Android的Maven的插件:3.8.2:产生来源(默认生成来源)项目我的应用程序内:舱单不合并! - > [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:未能执行目标com.jayway.maven.plugins.android.generation2:机器人-行家-插件:3.8.2:产生来源(缺省生成-sources)项目my-app:清单未合并! – pomber 2014-12-04 21:03:24

+0

这确实没有合并清单(我在我的项目中使用此配置),但仅适用于单个更新的清单。 这是错误日志的唯一相关部分吗? – WonderCsabo 2014-12-04 21:24:21