2013-07-18 18 views
6

我們正在使用Maven和IntelliJ IDEA構建我們的Android項目。有時我們必須執行「重新導入所有Maven項目」,例如更新依賴關係。問題在於,它總是弄亂資源的源文件夾:所有模塊都會得到「gen」和「target/generated-source/r」,這似乎是導致重複的原因。所以重新導入後,我們需要手動刪除其中的一個(通常是「gen」文件夾)。當然,我們想要避免這一步。我們嘗試了Android的多個設置,但目前還沒有運氣。「重新導入所有Maven項目」之後的重複類R&BuildConfig

那麼,我們如何配置IntelliJ來執行正確的Maven重新導入?

+0

也許你的項目結構不同於目標/生成源的maven默認等。看看這個:http://maven.apache.org/guides/mini/guide-using-one-source-directory .html – morpheus05

+0

@greenrobot有沒有解決方法?我在maven遇到這個問題,並且真的陷入了這裏:(奇怪的是它一直工作到昨天晚上,突然間它開始繼續說重複的類R和BuildConfig。 –

回答

2

據斯文Strohschein在http://youtrack.jetbrains.com/issue/IDEA-94901的回覆,你可以嘗試:

  1. 刪除「gen」,「target」和「out」文件夾
  2. 恢復「ipr」和「iml」文件中的更改(或者將它們全部刪除,甚至可以.idea文件夾)
  3. 開始的IntelliJ 12
  4. 打開POM文件
  5. 右鍵 - > 「的Maven」 - > 「重新導入」
  6. 「生成」 - > 「重建工程」

作品FO我。

0

從你上面的描述中我猜你的項目結構不同於maven默認。請參閱Introduction to the POM。但我認爲Android的android:generate-sources更有趣,如果你已經改變了資產目錄等

例子:

<sourceDirectory>${basedir}/src</sourceDirectory> 
<outputDirectory>${basedir}/target/classes</outputDirectory> 
+0

是的,它不同於標準的Maven佈局。該目錄是直接位於項目根目錄中的帶有src和gen文件夾的舊式Android佈局。你有具體的建議嗎? –

+0

我改變了我的帖子。我沒有一個android項目,所以我無法測試android:generate-sources配置。我認爲你必須改變一些細節。 – morpheus05

+0

不確定這種方法:我們已經有 src,並且res文件夾的默認值已經是$ {project.basedir}/res。 –

1

IDEA檢測到Android模塊並將其添加到模塊後,它會在平常的地方開始生成gen文件夾,但maven-android-plugintarget目錄下生成自己的文件夾。

您需要告訴IDEA將生成的文件放置在maven-android-plugin創建它們的相同位置。

首先,使用模塊的Android方面的設置和檢查本身使用Maven的目標,而不是生成的選項:同Maven的

enter image description here

然後,轉到模塊的設置,並設置輸出路徑,這是target目錄:

enter image description here

刪除gen目錄,做mvn clean清除所有unnece ssary文件。

相關問題