2015-02-26 2 views
0

У меня есть существующий проект Android в Eclipse, который я недавно решил, что мне нужно преобразовать проект Maven, чтобы я мог построить AAR. Нажимая Configure -> Convert to Maven Project, я смог получить добавленную POM. Затем я добавил родительский POM и POM для любых проектов зависимых библиотек. Я добавил плагин android-maven и установил тип упаковки в AAR.Maven и Android natures не играют хорошо вместе

Однако, как только я запустил установку Maven, я мгновенно получил ошибки. Плагины libs, assets и res ожидались, когда плагин android-maven находится в директории src/main. Как и AndroidManfiest. Если бы я переместил эти файлы и исправил эти ошибки, Maven смог построить мой AAR.

Теперь у меня есть выбор; либо преобразовать мой проект в структуру на основе модуля (например, src/main), либо оставить его в структуре Eclipse. Ни один из них не является удобным.

Я считаю, что лучшей возможностью может быть сохранение структуры Eclipse, поэтому я могу запускать и строить свой проект в Eclipse. Для создания Maven я считаю, что мне придется добавить скрипты сборки, чтобы по существу копировать проект в другое место, установить структуру проекта android-maven, а затем построить и установить мой AAR.

Неужели кто-нибудь столкнулся с такой ситуацией и каков был ваш исход? Если никто не ответит, я задокументирую свое решение, которое связано с некоторыми скриптами Ant.

+0

Мы ударили по аналогичной стене, но решили, что это слишком сумасшествие, чтобы продолжить работу с Eclipse/Maven, учитывая, что Android Studio/Gradle является рекомендуемым набором инструментов, продвигающимся вперед. («Рекомендовано», но я не вижу, как вы действительно можете его избежать). Немного помогаю, я боюсь, кроме как сказать, мы попытались, сдались и двинулись дальше. – brindy

+0

@brindy да, я бы предпочел не быть в этой ситуации, но, к сожалению, мне нужен Eclipse из-за большой поддержки NDK. – stevebot

+0

Фактически, эти артефакты создаются для использования в проекте Android Studio. Это достаточно легко для _USE_ JNI-библиотек в Android Studio, но у них такая небольшая поддержка для их создания. – stevebot

ответ

0

Ответ закончился тем, что дополнительная конфигурация Gradle была необходима с помощью android-maven-plugin. Это позволяет указать произвольное местоположение для разных каталогов и файлов в нашем Android-проекте.

Пример,

<sourceDirectory>src/</sourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>com.simpligility.maven.plugins</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <extensions>true</extensions> 
        <configuration> 
         <attachNativeArtifacts>true</attachNativeArtifacts> 
         <nativeLibrariesDirectory>${project.basedir}/libs</nativeLibrariesDirectory> 
         <assetsDirectory>${project.basedir}/assets</assetsDirectory> 
         <resourceDirectory>${project.basedir}/res</resourceDirectory> 
         <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> 
         <failOnNonStandardStructure>false</failOnNonStandardStructure> 
        </configuration> 
      </plugin> 

Это позволило нам построить AAR без изменения структуры проекта вокруг.

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