maven对android项目的支持?

时间:2010-10-25 13:32:15

标签: java android maven

我想开始Android项目,但我真的很想用Maven构建它。 Google是否为Maven提供支持或计划支持它?如果有人知道至少我可以同时使用Maven的原型,那将是很棒的。提前谢谢。

5 个答案:

答案 0 :(得分:18)

似乎有a maven plugin for that: - )

答案 1 :(得分:13)

我真正想要的是an article like this,但我在问题得到解答后找到了。

<强>更新   SpringSource的人做了一个Spring Android项目,支持在Android环境中使用Spring Framework并have Maven support。我试试看。

这是一篇关于使用Eclipse 3.6和Android SDK 9的Spring Android和Maven的文章,分为两部分:

First part

Second part

答案 2 :(得分:3)

The Android Maven plugin已更新,以支持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>

Eclipse的Android Configurator(m2e-android)的最新版本也支持r14中的更改。最后,我在SpringSource网站上发布了一个名为Updated Maven Support for Android Projects的后续博客,该博客将对这些工具进行更新。

答案 3 :(得分:2)

这是我为Eclipse中现有的android项目添加maven支持所做的。我安装了&#39; m2e&#39;插件通过Eclipse市场。然后我安装了&#39; m2e-android&#39;插入。目前它被称为M2E的Android配置器&#39;在Eclipse市场。安装完两个插件并重新启动Eclipse后,右键单击现有的android项目 - &gt;配置 - &gt;转换为Maven项目。为项目选择唯一的组ID和工件ID,然后单击“完成”。将以下内容复制到项目的pom.xml并替换所有现有内容。更改&#39;版本&#39;的值标记在&#39;依赖&#39;到您正在使用的SDK版本。同时更改&#39;平台的价值&#39;在文件末尾附近标记到您的平台的值。不要忘记还要更改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>

然后右键单击项目 - &gt; Maven - &gt;更新项目。如果Eclipse抱怨xml中的错误,您可能需要安装maven然后运行

mvn clean install

来自包含pom.xml文件的文件夹中的控制台。

答案 4 :(得分:0)

正如@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. 使用下一步 [Your_maven_path] \ conf 配置 settings.xml

    <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>
    
  5. 查看重要的<packaging>, <build>个节点,它是内容和com.google.android依赖。

    1. 现在您可以在IDE中打开Maven窗口。对于Intellij Idea,我接下来会这样做:
      编辑 - &gt;工具Windows-&gt; Maven 并添加 pom.xm l以初始化maven目录。
    2. 就是这样。