Поддержка maven для проектов Android?

Я хочу начать проект для Android, но мне очень нравится создавать его с помощью Maven. Предоставляет ли Google поддержку Maven или планирует ее поддерживать? Было бы здорово, если бы кто-нибудь знал хотя бы архетип Maven, который я могу использовать. Заранее спасибо.


person Ither    schedule 25.10.2010    source источник


Ответы (5)


Похоже, для этого есть плагин maven :-)

person Riduidel    schedule 25.10.2010

Что мне действительно было нужно, так это подобную статью, но я нашел ее после ответа на вопрос.

Обновление: сотрудники SpringSource разработали проект Spring для Android, поддерживающий использование Spring Framework в среде Android и есть поддержка Maven. Я дам ему попробовать.

Вот статья о Spring Android и Maven с использованием Eclipse 3.6 и Android SDK 9, разделенная на две части:

Первая часть

Вторая часть

person Ither    schedule 02.11.2010

Подключаемый модуль Android Maven был обновлен для поддержки изменений, внесенных в Android SDK r14. выпускать. Вам нужно будет настроить POM для использования новой версии. Я столкнулся с ошибкой нехватки памяти в новой версии при создании моего приложения, поэтому обратите внимание на раздел dex jvmArguments, чтобы обеспечить больше доступной памяти.

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>3.0.0-alpha-13</version>
    <configuration>
        <sdk>
            <platform>${android-platform}</platform>
        </sdk>
        <dex>
            <jvmArguments>
                <jvmArgument>-Xms256m</jvmArgument>
                <jvmArgument>-Xmx512m</jvmArgument>
            </jvmArguments>
        </dex>
        <deleteConflictingFiles>true</deleteConflictingFiles>
        <undeployBeforeDeploy>true</undeployBeforeDeploy>
    </configuration>
    <extensions>true</extensions>
</plugin>

Последняя версия Android Configurator (m2e-android) для Eclipse также поддерживает изменения в r14. Наконец, я разместил на сайте SpringSource дополнительный блог под названием Обновленная поддержка Maven для проектов Android, которая включает в себя эти обновления инструментов.

person Roy Clarkson    schedule 10.11.2011

Вот что я сделал, чтобы добавить поддержку maven в существующий проект Android в Eclipse. Я установил плагин m2e через торговую площадку Eclipse. Затем я установил плагин «m2e-android». На данный момент он называется «Конфигуратор Android для M2E» на рынке Eclipse. После установки двух плагинов и перезапуска Eclipse щелкните правой кнопкой мыши существующий проект Android -> Настроить -> Преобразовать в проект Maven. Выберите уникальный идентификатор группы и идентификатор артефакта для своего проекта, затем нажмите «Готово». Скопируйте следующее содержимое в pom.xml проекта и замените все существующее содержимое. Измените значение тега «версия» в разделе «зависимости» на версию SDK, которую вы используете. Также измените значение тега «платформа» в конце файла на значение вашей платформы. Не забудьте также изменить groupId, ArtiftId и имя xml.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.myproject</groupId>
    <artifactId>MyProject</artifactId>
    <version>0.1.0-SNAPSHOT</version>
    <packaging>apk</packaging>
    <name>MyProject</name>

    <dependencies>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>android</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
        <sourceDirectory>src</sourceDirectory>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>android-maven-plugin</artifactId>
                    <version>3.3.0</version>
                    <extensions>true</extensions>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <configuration>
                    <sdk>
                        <!-- platform or api level (api level 4 = platform 1.6)-->
                        <platform>10</platform>
                    </sdk>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

После этого щелкните правой кнопкой мыши проект -> Maven -> Обновить проект. Если Eclipse жалуется на ошибки в xml, вы можете установить maven, а затем запустить

mvn clean install

из консоли в папку, содержащую файл pom.xml.

person Thunder    schedule 10.09.2012

как уже говорил @Riduidel, вы можете использовать плагин com.jayway.maven.plugins.android.generation2.
Обратите внимание: вам не нужно загружать какие-либо плагины, вам нужно иметь только maven для использования этого плагина.
Как я это сделал:

  1. вручную добавьте pom.xml в свой проект Android (в корень проекта).

  2. загрузите apache-maven-3.1.1 и добавьте папку bin (например, D:\java\apache-maven-3.1.1\bin;) в путь в переменных среды.

  3. настройте settings.xml в [Your_maven_path]\conf следующим образом:

    <pluginGroups>  
    
         <pluginGroup>com.jayway.maven.plugins.android.generation2</pluginGroup>
    
    </pluginGroups> 
    
  4. Добавьте содержимое в pom.xml. Мой пример:

        <?xml version="1.0" encoding="UTF-8"?>
        <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
            <modelVersion>4.0.0</modelVersion>
            <groupId>com.example.ENumbers</groupId>
            <artifactId>ENumbers</artifactId>
            <version>1.0</version>
            <packaging>apk</packaging>
            <name>MainApp</name>
    
            <properties>
                <platform.version>2.2.1</platform.version>
            </properties>
    
            <dependencies>
                <dependency>
                    <groupId>com.google.android</groupId>
                    <artifactId>android</artifactId>
                    <version>${platform.version}</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>org.simpleframework</groupId>
                    <artifactId>simple-xml</artifactId>
                    <version>2.7.1</version>
                    <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <artifactId>xpp3</artifactId>
                        <groupId>xpp3</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>stax-api</artifactId>
                        <groupId>stax</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>stax</artifactId>
                        <groupId>stax</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>spring-web</artifactId>
                        <groupId>org.springframework</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-logging</artifactId>
                        <groupId>commons-logging</groupId>
                    </exclusion>
                   </exclusions>
                </dependency>
            </dependencies>
    
            <build>
                <sourceDirectory>src</sourceDirectory>
                <plugins>
                    <plugin>
                        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                        <artifactId>android-maven-plugin</artifactId>
                        <version>3.8.1</version>
                        <configuration>
                            <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
                            <assetsDirectory>${project.basedir}/assets</assetsDirectory>
                            <resourceDirectory>${project.basedir}/res</resourceDirectory>
                            <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
                            <sdk>
                                <path>
                                    D:\Program Files\Android\android-sdk
                                </path>
                                <platform>22</platform>
                            </sdk>
                            <undeployBeforeDeploy>true</undeployBeforeDeploy>
                        </configuration>
                        <extensions>true</extensions>
                    </plugin>
    
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>2.3.2</version>
                        <configuration>
                            <source>1.6</source>
                            <target>1.6</target>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </project>
    

Посмотрите на важные узлы <packaging>, <build>, их содержание и зависимость от com.google.android.

  1. Теперь вы можете открыть окно Maven в своей среде IDE. Для Intellij Idea я делаю следующее:
    Edit->Tool Windows->Maven и добавляю ваш pom.xml для инициализации каталога maven.
  2. Это все.
person Yuliia Ashomok    schedule 01.07.2015