Я использую Maven, и мне нужно обрабатывать классы из других зависимостей. Перед обработкой классов maven-dependency-plugin
используется для распаковки этих зависимостей с целью unpack-dependencies
, чтобы затем я мог обрабатывать классы в каталоге target
. Все в порядке, пока указанные зависимости упакованы в виде JAR. Теперь я столкнулся с зависимостью AAR, которую необходимо обрабатывать классом особым образом. Ошибка, которую я получаю до сих пор:
Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.10:unpack-dependencies (aars-only) on project app-android: Unknown archiver type: No such archiver: 'aar'. -> [Help 1]
Идентификатор выполнения aars-only
исходит из приведенной ниже конфигурации, но в целом он дает ту же ошибку, если не разделить выполнения. Вот моя конфигурация maven-dependency-plugin
, которую я позже разделил на два исполнения:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>jars-only</id>
<phase>process-classes</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<includeGroupIds>foo-group,bar-group</includeGroupIds>
<includeTypes>jar</includeTypes> <!-- this is necessary to skip AAR dependencies -->
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</configuration>
</execution>
<execution>
<id>aars-only</id>
<phase>process-classes</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<includeGroupIds>baz-group</includeGroupIds>
<includeTypes>aar</includeTypes> <!-- hoping this can process AARs as well, but it's just another execution, nothing special -->
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
Комментирование выполнения aars-only
приводит к сбою приложения во время выполнения, но сборка проходит, поскольку выполнение jars-only
включает только тип jar
— не совсем то, что мне нужно.
Как распаковать зависимость AAR (baz-group
) в каталог target/classes
? Можно ли как-то настроить maven-dependency-plugin
, чтобы он мог принимать AAR и его упакованный classes.jar
? Или есть какой-то другой способ заставить его работать, возможно, просто с помощью другого плагина?
(Может быть, это полезный совет: я также использую com.simpligility.maven.plugins:android-maven-plugin
.)