2014-12-04 139 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