将自定义android eclipse项目导出为maven构建类型

时间:2014-09-26 07:36:33

标签: java android eclipse maven pom.xml

目标是将现有的android eclipse项目导出为maven类型。为此,需要下载.m2 plugin。右键单击项目和Configure-->Convert To Maven Project,打开窗口“Create new POM”,其中包含:

enter image description here

问题是在只有jar/pom/war的情况下应该在包装类型中选择什么。我相信应该有“apklib”,但是当我们在pom.xml代之后输入它时:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>X.0.0</modelVersion>
  <groupId>Name</groupId>
  <artifactId>Artifact</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>apklib</packaging>
</project>

Eclipse响应:

Project build error: Unknown packaging: apklib

此致

1 个答案:

答案 0 :(得分:1)

maven没有内置包装&#34; apklib&#34;,这可能是你收到错误的原因。

你没有指定你使用哪个maven插件来构建android工件,但是假设你的this one你的pom需要看起来像这样(取自他们的samples

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.simpligility.android</groupId>
<artifactId>helloflashlight</artifactId>
<version>1.0.0</version>
<packaging>apk</packaging>
<name>HelloFlashlight</name>

<dependencies>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>4.1.1.4</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <sourceDirectory>src</sourceDirectory>
    <finalName>${project.artifactId}</finalName>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <version>3.8.2</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 as api level (api level 16 = platform 4.1)-->
                    <platform>16</platform>
                </sdk>
            </configuration>
        </plugin>
    </plugins>
</build>
</project>