3

我正在使用Maven與我的Android項目以及android-maven-plugin。在我的項目pom.xml文件我聲明依賴,像這樣:當在IntelliJ中構建時未解決的maven android依賴項

<dependency> 
    <groupId>com.viewpagerindicator</groupId> 
    <artifactId>library</artifactId> 
    <version>2.4.1</version> 
    <type>apklib</type> 
</dependency> 

ViewPagerIndicator而Android 4.1.1.4的依賴,這是Maven的中央here。 不過,我不與Android 4.1.1.4建設,我建立在4.2.2 R2,其聲明如下所示:

<dependency> 
    <groupId>android</groupId> 
    <artifactId>android</artifactId> 
    <version>4.2.2_r2</version> 
</dependency> 

這神器不是在Maven的中央,我使用的maven-android-sdk-deployer到將Android構件推送到我的回購站中。

如果我打開我的終端並使用maven構建,則沒有問題。問題是當我將我的項目導入到IntelliJ並嘗試構建時。模塊設置(正確)抱怨ViewPagerIndicator apklib模塊中Android 4.1.1.4依賴項的路徑被破壞。

我檢查了Android 4.1.1.4 jar的.m2/repository文件夾,甚至沒有它的文件夾,這意味着Maven從來沒有下載它。我猜測它與Maven構建Maven-android-plugin時的工作方式有關,與IntelliJ的構建方式有關。

我知道我可以抓住罐子,用手部署它自己,但我正在尋找一個更好的解決方案在我的球隊,以便新成員只需要抓住的源代碼和別的什麼也不做,以構建項目。我已經爲團隊設置了Nexus,所以我們不必手動部署第三方jar,並在每個人的機器上運行sdk deployer。我希望能夠向新開發者提供源代碼,並且可以隨它一起運行。

回答

1

它運作良好,對我們(在組合與Maven的Android的SDK-部署方式:

<dependency> 
    <groupId>com.viewpagerindicator</groupId> 
    <artifactId>library</artifactId> 
    <version>${viewpagerindicator.version}</version> 
    <type>apklib</type> 
    <exclusions> 
     <exclusion> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>com.google.android</groupId> 
      <artifactId>support-v4</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

我們還與建築的IntelliJ通常只需打開pom.xml文件,說是的。 。到了「?會ü想打開這個作爲一個項目」的提示

+0

如果我嘗試排除我無法構建的Android依賴項,ViewPagerIndicator lib中具有Android依賴項的所有類都會投訴。 –

+0

您是否在Android支持庫的pom.xml文件中有依賴關係? ' android.support 兼容性-V4 ' –

+0

是,但列出如下:' com.google。安卓 支持-V4 R13 ' –

0

這裏是事實:我Maven項目取決於apklib模塊由行家本身的可建,但不是通過的IntelliJ解決這種情況。以下:

  1. 將maven項目導入intellij
  2. 打開apklib模塊設置並向模塊添加顯式依賴jar(android,support ...)。不要導出這種依賴關係。您也可以設置提供的範圍。

它適合我。