【问题标题】:Android with maven and Unresolveable build extension: Plugin com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.3带有 maven 和不可解析的构建扩展的 Android:插件 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.3
【发布时间】:2016-10-17 11:01:30
【问题描述】:

我正在 Eclipse IDE 中为 Maven 上的 Android 项目创建 POM 文件。我还在 settings.xml 文件中修改了我的代理设置。我在命令提示符下收到两个错误: 1)

Project build error: Unresolveable build extension: Plugin 
 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.3 or one of its dependencies 
 could not be resolved: The following artifacts could not be resolved: 
 com.jayway.maven.plugins.android.generation2:android-maven-plugin:jar:3.9.0-rc.3, 
 com.google.guava:guava:jar:13.0.1, com.android.tools:sdklib:jar:22.4.2, org.apache.commons:commons-
 compress:jar:1.0, com.android.tools.build:builder:jar:0.7.3, org.bouncycastle:bcpkix-jdk15on:jar:1.48, 
 net.sf.kxml:kxml2:jar:2.3.0, com.android.tools.ddms:ddmlib:jar:22.4.2, com.android.tools.lint:lint:jar:22.4.2, 
 org.codehaus.plexus:plexus-interpolation:jar:1.14, org.sonatype.sisu:sisu-guice:jar:3.1.0, 
 org.sonatype.sisu.inject:guice-bean-locators:jar:2.3.0, javax.enterprise:cdi-api:jar:1.0, 
 org.sonatype.sisu.inject:guice-plexus-locators:jar:2.3.0: Failure to transfer 
 com.jayway.maven.plugins.android.generation2:android-maven-plugin:jar:3.9.0-rc.3 from http://
 repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the 
 update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact 
 com.jayway.maven.plugins.android.generation2:android-maven-plugin:jar:3.9.0-rc.3 from/to central (http://
 repo1.maven.org/maven2): No response received after 60000

和 2)

Project build error: Unknown packaging: apk

对于第二个错误,我尝试了Android with maven? Apkunknown上的提示,但无济于事。这是我的 pom 文件:

<?xml version="1.0" encoding="utf-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns="http://maven.apache.org/POM/4.0.0">
    <parent>
        <artifactId>verification-samples-android</artifactId>
        <groupId>com.neurotec.samples</groupId>
        <version>9.0.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>face-verification-sample-android</artifactId>
    <packaging>apk</packaging>
    <name>FaceVerification Sample</name>
    <build>
        <finalName>face-verification-sample</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target
                                name="copy and rename file">
                                <copy
                                    file="${product.bin.data.directory}/FacesDetectSegmentsFeaturePointsDetect.ndf"
                                    tofile="${project.asset.data.directory}/FacesDetectSegmentsFeaturePointsDetect.ndf.jet" />
                                <copy
                                    file="${product.bin.data.directory}/FacesDetectSegmentsFeaturePointsTrack.ndf"
                                    tofile="${project.asset.data.directory}/FacesDetectSegmentsFeaturePointsTrack.ndf.jet" />
                                <copy
                                    file="${product.bin.data.directory}/FacesDetectSegmentsLiveness.ndf"
                                    tofile="${project.asset.data.directory}/FacesDetectSegmentsLiveness.ndf.jet" />
                                <copy
                                    file="${product.bin.data.directory}/FacesCreateTemplateSmall.ndf"
                                    tofile="${project.asset.data.directory}/FacesCreateTemplateSmall.ndf.jet" />
                                <copy
                                    file="${product.bin.data.directory}/FacesCreateTemplateMedium.ndf"
                                    tofile="${project.asset.data.directory}/FacesCreateTemplateMedium.ndf.jet" />
                            </target>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-native-libraries</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <overwrite>true</overwrite>
                            <outputDirectory>${basedir}/libs</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${product.lib.android.directory}</directory>
                                    <includes>
                                        <include>**/libjnidispatch.so</include>
                                        <include>**/libNCore.so</include>
                                        <include>**/libNLicensing.so</include>
                                        <include>**/libNBiometricClient.so</include>
                                        <include>**/libNBiometrics.so</include>
                                        <include>**/libNDevices.so</include>
                                        <include>**/libNFaceVerification.so</include>
                                        <include>**/libNGui.so</include>
                                        <include>**/libNMedia.so</include>
                                        <include>**/libNMediaProc.so</include>
                                        <include>**/libopenblas.so</include>
                                    </includes>
                                    <excludes>
                                        <exclude>armeabi/**</exclude>
                                        <exclude>x86_64/**</exclude>
                                    </excludes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>standalone</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <outputDirectory>${product.bin.directory}</outputDirectory>
                    <finalName>Android</finalName>
                    <appendAssemblyId>false</appendAssemblyId>
                    <descriptors>
                        <descriptor>src/main/assembly/standalone.xml</descriptor>
                    </descriptors>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>android</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-core-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-biometrics-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-media-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-media-processing-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-biometrics-client-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-face-verification-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-face-verification-gui-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-devices-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-devices-media-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-biometrics-gui-android</artifactId>
        </dependency>
        <dependency>
            <groupId>com.neurotec</groupId>
            <artifactId>neurotec-gui-android</artifactId>
        </dependency>
        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
        </dependency>
    </dependencies>
    <properties>
        <product.root.directory>${basedir}/../../../..</product.root.directory>
        <project.asset.data.directory>${project.build.directory}/generated-sources/combined-assets/data</project.asset.data.directory>
    </properties>
</project>

我非常感谢您的建议和 cmets。另外,我正在使用以下版本的 maven 和 java:

【问题讨论】:

    标签: java android eclipse maven


    【解决方案1】:

    运行命令

    mvn eclipse:eclipse
    

    确保 eclipse 可以看到这些库。这意味着进入 Eclipse 中的 projectsetup/buildpath/libraries 编辑器并添加变量 M2_REPO 以指向您的本地 maven 存储库(例如 /home/nacho3d/.m2/repository 之类的东西)

    实际上,您的错误在我看来就像 maven 找不到 android-maven-plugin 的依赖项。

    如果不行,则需要设置代理:Configuring a proxy

    Setting.xml 文件位置

    settings.xml 文件可能存在两个位置:

    Maven 安装:$M2_HOME/conf/settings.xml

    一个用户的安装:${user.home}/.m2/settings.xml

    【讨论】:

    • 在哪里可以找到 settings.xml 文件?
    • $M2_HOME 的值是多少?
    • @SagorAhmed 那是 maven 主文件夹。在 Windows 中,它看起来像 C:\apache-maven-3.3.9\conf
    • 如何找到用户名和密码?
    【解决方案2】:

    在你的 pom.xml 中添加这行代码并尝试重建你的项目。

    这个插件管理可能会帮助你。

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>com.jayway.maven.plugins.android.generation2</groupId>
          <artifactId>android-maven-plugin</artifactId>
          <version>3.9.0-rc.2</version>
          <extensions>true</extensions>
        </plugin>
      </plugins>
    </pluginManagement>
    

    您应该将此依赖项添加到您的项目中。

    <dependency>
        <groupid>com.google.android</groupId>
        <artifactid>android</artifactId>
        <version>4.0.1.2</version>
        <scope>provided</scope>
    </dependency>
    

    然后使用命令

    mvn eclipse:eclipse // to reset all .classpath files
    

    mvn clean
    

    不确定,但希望能解决您的问题。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2012-09-28
    • 2014-12-26
    相关资源
    最近更新 更多