2010-10-25 80 views
18

我想爲Android啓動一個項目,但我真的很想用Maven構建它。 Google是否提供對Maven的支持或計劃支持它?如果有人知道我至少可以使用Maven的一個原型,那就太好了。提前致謝。對於android項目的maven支持?

回答

13

我真正想要的是an article like this,但我發現它的問題得到回答後。

更新: 人SpringSource的做支持Spring框架的在Android環境和have Maven support使用Spring的Android項目。我會試一試。

下面是使用Eclipse 3.6和Android SDK 9,分裂關於Spring的Android和Maven的文章分爲兩個部分:

First part

Second part

18
+1

好吧,似乎我的谷歌虛弱。謝謝。 – Ither 2010-10-25 14:00:44

+0

這應該有所幫助。 +1 – 2010-10-25 22:11:33

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配置器(m2e-android)也支持r14中的更改。最後,我在SpringSource站點上發佈了一個名爲Updated Maven Support for Android Projects的後續博客,其中會介紹這些更新的工具。

2

這是我在Eclipse中爲現有的Android項目添加maven支持所做的工作。我通過Eclipse市場安裝了'm2e'插件。然後我安裝了'm2e-android'插件。目前在Eclipse市場上被稱爲「M2E的Android配置器」。安裝完兩個插件並重新啓動Eclipse後,右鍵單擊現有的Android項目 - >配置 - >轉換爲Maven項目。爲您的項目選擇唯一的組ID和工件ID,然後單擊完成。將以下內容複製到項目的pom.xml中並替換所有現有內容。將「依賴關係」下的「版本」標記的值更改爲您正在使用的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然後從包含pom.xml文件的文件夾在控制檯中運行

mvn clean install 

0

作爲@Riduidel之前說的,你可以使用com.jayway.maven.plugins.android.generation2插件。
注意,你不需要下載任何插件,你只需要使用這個插件的maven。
我怎麼做的:

  1. 手動添加甲醛。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. 現在您可以在IDE中打開Maven窗口。對於IntelliJ IDEA的我做下一個:
    編輯 - >工具Windows的>的Maven並添加pom.xm升初始化Maven的目錄。
  2. 就是這樣。