尝试在Eclipse中包含maven构建的库,从而提供缺失的工件错误

时间:2012-02-16 20:56:36

标签: eclipse maven dependencies artifact

我已经看到有很多关于这个问题的问题,但遗憾的是没有人能解决这个问题。这是一个关于正在发生的事情的屏幕截图:

pom.xml dependency error

它依赖于android-support-v4 jar文件,你可以看到它被添加到我的构建路径中。它是来自maven库目录的libs文件夹的确切jar文件。我尝试了以下内容:

  • 重启Eclipse
  • 清洁项目
  • 右键单击项目并更新依赖项
  • 更新项目配置禁用和重新启用工作区解析

没有任何帮助。有没有其他技巧来解决这个问题?我见过的所有答案都建议我做一些我已经尝试过的事情。

非常感谢!

2 个答案:

答案 0 :(得分:1)

实际根本原因:

此实例中的OP JMRboosties报告必须停用Proguard (通过删除未使用的代码并重命名类,字段来缩小,优化和混淆代码的工具,以及具有语义模糊名称的方法)

  

<plugin>中发生错误的行(pom.xml项目)上禁用proguard解决了问题

(参见“How to use ProGuard with android-maven-plugin ”)。

使用Proguard会产生某些副作用:例如,Proguard page确实提到:

  

默认的proguard.cfg文件试图涵盖一般情况,但您可能会遇到ClassNotFoundException等异常,当ProGuard删除应用程序调用的整个类时会发生这种情况。


原始答案:

如此GitHub post中所述:

  

我要将自己的android工件部署到我的个人存储库,以避免再次出现此问题   如果您没有明确使用Maven,您可以将其作为常规Android项目导入到eclipse中,它将从.jar目录中选择libs/

(请注意,您的android-support-v4.jar不在项目的libs中)

  

您现在必须使用maven SDK部署程序安装Android 1.6和compat lib

     

点击platforms/platform-4/中的extras/compatibility-v4/deployer,并在每个mvn install中运行compat

     

希望File, New, Project, Android lib尽快进入maven中心,这样我就可以避免这一步。

     

同样,该项目被设置为在eclipse中用作普通的Android项目,与maven完全分开   existing sources,使用library/,选择{{1}}文件夹。

答案 1 :(得分:0)

假设您在幕后使用m2e-android,那么您遇到编译问题的原因是m2e-android插件从Eclipse项目类路径中删除了所有provided范围依赖项。

我们这样做是因为,由于ADT 16.0.0中的更改,Eclipse类路径中的任何JAR文件都将打包到可分发的APK文件中。