2014-12-04 2 views
1

У меня есть проект, почти равен android-quickstart archetype:Как избежать AndoridManifest переопределения с мавена

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 неповрежденным (например, Gradle в 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

+0

[ERROR] Не удалось выполнить цель com.jayway.maven.plugins.android.generation2: android-maven-plugin: 3.8.2: generate-sources (источники-генерации-источники) в проекте my-app: Манифесты не были объединены ! -> [Помощь 1] org.apache.maven.lifecycle.LifecycleExecutionException: Не удалось выполнить цель com.jayway.maven.plugins.android.generation2: android-maven-plugin: 3.8.2: generate-sources (по умолчанию-generate -sources) в проекте my-app: Манифесты не были объединены! – pomber

+0

Это работает без уверенного слияния манифеста (я использую этот конфиг в своем проекте), но только для одного обновленного манифеста. Является ли это единственной важной частью журнала ошибок? – WonderCsabo

Смежные вопросы