2013-03-13 11 views
6

Sto tentando di utilizzare l'SDK Android di Facebook nella mia applicazione Android Maven. Per questo ho usato un repo personalizzato Maven (https://github.com/avianey/facebook-api-android-maven). Ho notato che il pacchetto di supporto per Android era obsoleto e ho creato il mio repository github (è esattamente lo stesso progetto, ad eccezione del pom). Questo ha funzionato per un po '. Tuttavia, quando i membri del mio team volevano importare le dipendenze Maven, ha generato alcune eccezioni.Importazione di apklib da github con 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 

Ho eliminato apklib dal mio repository locale e ho notato che non avrebbe importato più. Non so perché ha funzionato la prima volta.

Questo è quello che ho usato nel mio pom per importare il progetto originale:

<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> 

Ed è così che ho importato il mio progetto personalizzato (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> 

Quando ho ripristinare il vecchio apklib nel mio repository locale, funziona bene. Eliminalo e smette di funzionare.

Tuttavia, quando provo ad aggiornare le mie dipendenze, maven trova il progetto di Facebook pom e lo inserisce nel mio repository locale.

Qualsiasi suggerimento sul perché questo sta accadendo (e su come sistemarlo) sarebbe molto apprezzato!

risposta

0

Provare a eliminare tutti i file _maven.repositories dal repository di esperti locale. Conservano le informazioni sull'origine dei manufatti.

Maven tenta di aggiornare il jar dalla vecchia posizione (come salvato in _maven.repositories) e fallisce. La presunzione qui è che lo stesso artefatto su un altro repository remoto potrebbe essere diverso.

per eliminare tutti i _maven.repositories è possibile utilizzare questo comando:

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