使用Maven从github导入apklib

bor*_*tdc 6 android facebook github repository maven

我想在我的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
Run Code Online (Sandbox Code Playgroud)

我从本地存储库中删除了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>
Run Code Online (Sandbox Code Playgroud)

这就是我导入自己的自定义项目的方式(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>
Run Code Online (Sandbox Code Playgroud)

当我在我的本地存储库中恢复旧的apklib时,它工作得很好.删除它,它就会停止工作.

但是,当我尝试更新我的依赖项时,maven会找到facebook项目pom并将其放入我的本地存储库中.

任何关于为什么会发生这种情况的建议(以及如何修复它)都将不胜感激!

rzy*_*mek 0

_maven.repositories尝试从本地 Maven 存储库中删除所有文件。他们保存着有关文物来源的信息。

Maven 尝试从旧位置(保存在 _maven.repositories 中)更新您的 jar,但失败了。这里的假设是不同远程存储库上的相同工件可能会有所不同。

要删除所有内容,_maven.repositories可以使用以下命令:

find ~/.m2/ -name _maven.repositories | xargs rm 
Run Code Online (Sandbox Code Playgroud)