поддержка maven для андроид проектов? - PullRequest
19 голосов
/ 25 октября 2010

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

Ответы [ 5 ]

18 голосов
/ 25 октября 2010

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

13 голосов
/ 02 ноября 2010

Что я действительно хотел, так это статья вроде этой , но я нашел ее после того, как на вопрос был дан ответ.

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

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

Первая часть

Вторая часть

3 голосов
/ 10 ноября 2011

Плагин 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 (m2e-android)для Eclipse также поддерживает изменения в r14.Наконец, я разместил на сайте SpringSource дополнительный блог под названием Обновленная поддержка Maven для проектов Android , в котором рассказывается об этих обновлениях для инструментов.

2 голосов
/ 10 сентября 2012

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

0 голосов
/ 01 июля 2015

Как уже говорил @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. configure settings.xml in [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.

Теперь вы можете открыть окно Maven в вашей IDE.Для Intellij Idea я делаю это следующим образом:
Edit-> Tool Windows-> Maven и добавляю pom.xm l для инициализации каталога maven. Вот и все.
...