我正在尝试在我的Maven Android应用程序中使用Facebook Android SDK。为此,我使用了自定义maven repo(https://github.com/avianey/facebook-api-android-maven)。我注意到Android支持包已经过时,并创建了我自己的github repo(它与pom完全相同)。这工作了一段时间。但是,当我的团队成员想要导入maven依赖项时,它会抛出一些例外。
Error when importing module '~apklib-com.github.bertdecock_facebook-android-ahoy-api_3.0.0': Cannot find file C:\Users\Bert\.m2\repository\com\github\bertdecock\facebook-android-ahoy-api\3.0.0\facebook-android-ahoy-api-3.0.0.apklib
17:19:50 Error when importing module '~apklib-com.github.bertdecock_facebook-android-ahoy-api_3.0.0': Cannot find file C:\Users\Bert\.m2\repository\com\github\bertdecock\facebook-android-ahoy-api\3.0.0\facebook-android-ahoy-api-3.0.0.apklib
17:19:50 Error when importing module '~apklib-com.github.bertdecock_facebook-android-ahoy-api_3.0.0': Cannot find src directory in C:/Users/Bert/Development/IntelliJ Projects/SDProject/AndroidApp/gen-external-apklibs/com.github.bertdecock_facebook-android-ahoy-api_3.0.0
我从本地存储库中删除了apklib,并注意到它不再导入了。我不知道为什么它第一次有效。
这是我在我的pom中用来导入原始项目的内容:
<repositories>
...
<repository>
<id>The mavenized Facebook Android API</id>
<url>http://avianey.github.com/facebook-api-android-maven/</url>
</repository>
</repositories>
...
<dependencies>
...
<dependency>
<groupId>com.github.avianey</groupId>
<artifactId>facebook-android-api</artifactId>
<version>3.0.0</version>
<type>apklib</type>
</dependency>
</dependencies>
这就是我导入自己的自定义项目(https://github.com/bertdecock/facebook-android-ahoy-api)的方式:
<repository>
<id>The mavenized Facebook Android API</id>
<url>https://github.com/bertdecock/facebook-android-ahoy-api/</url>
</repository>
<dependency>
<groupId>com.github.bertdecock</groupId>
<artifactId>facebook-android-ahoy-api</artifactId>
<version>3.0.0</version>
<type>apklib</type>
</dependency>
当我在我的本地存储库中恢复旧的apklib时,它工作得很好。删除它,它就会停止工作。
然而,当我尝试更新我的依赖项时,maven会找到facebook项目pom并将其放入我的本地存储库。
对于为什么会发生这种情况(以及如何修复它)的任何建议都将非常感谢!
答案 0 :(得分:0)
尝试删除本地maven存储库中的所有_maven.repositories
个文件。
他们掌握有关人工制品起源的信息。
Maven尝试从旧位置更新您的jar(保存在_maven.repositories中)并失败。这里的假设是,不同远程存储库上的相同因素可能不同。
要删除所有_maven.repositories
,您可以使用此命令:
find ~/.m2/ -name _maven.repositories | xargs rm