2013-03-13 31 views
6

我想在我的Maven Android应用程序中使用Facebook Android SDK。为此,我使用了一个定制的Maven回购(https://github.com/avianey/facebook-api-android-maven)。我注意到Android支持包已经过时了,并且创建了我自己的github回购(除了pom,它完全是同一个项目)。这工作了一段时间。但是,当我的团队成员想要导入maven依赖项时,它会抛出一些例外。从github与Maven导入apklib

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

尝试从本地maven存储库中删除所有_maven.repositories文件。 他们掌握有关人工制品起源的信息。

Maven尝试从旧位置更新您的jar(保存在_maven.repositories中)并失败。这里的想法是,在不同的远程存储库上的相同事件可能不同。

要删除所有_maven.repositories你可以使用这个命令:

find ~/.m2/ -name _maven.repositories | xargs rm