带有 maven 和不可解析的构建扩展的 Android:插件 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.
Posted
技术标签:
【中文标题】带有 maven 和不可解析的构建扩展的 Android:插件 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.3【英文标题】:Android with maven and Unresolveable build extension: Plugin 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:
【问题讨论】:
【参考方案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
【讨论】:
然后从这里配置代理maven.apache.org/guides/mini/guide-proxies.html 在哪里可以找到 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
不确定,但希望能解决您的问题。
【讨论】:
编辑后我的 xml 文件如下所示:paste.ofcode.org/r9AQZEKg8KnjgRE7GVsvD9。但同样的错误存在。以上是关于带有 maven 和不可解析的构建扩展的 Android:插件 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.的主要内容,如果未能解决你的问题,请参考以下文章
处理 POM 时出现 Maven 错误:[致命] 不可解析的 POM...PITarget 带有保留的 xml 名称
使用 Maven 3.0.3 和 relativePath 表示法的不可解析的父 POM
Maven:在不扩展依赖项的情况下使用 flatten 解析版本