2013-07-18 7 views
6

Budujemy nasze projekty Android z Maven i IntelliJ IDEA. Czasami musimy wykonać "Reimport All Maven Projects", np. zaktualizować zależności. Problem polega na tym, że zawsze mylą foldery źródłowe dla zasobów: wszystkie moduły otrzymują "gen" i "target/generated-source/r", co wydaje się być przyczyną duplikatów. Po ponownym importowaniu musimy ręcznie usunąć jedną z nich (zazwyczaj jest to folder "gen"). Oczywiście chcemy tego kroku uniknąć. Wypróbowaliśmy kilka ustawień dla aspektu Androida, ale jak dotąd nie mieliśmy szczęścia.Zduplikowane klasy R & BuildConfig po "Reimport All Maven Projects"

Jak zatem skonfigurować IntelliJ do prawidłowego importu reszty Maven, który działa?

+0

Może twoja struktura projektu różni się od domyślnej wartości domyślnej, która jest celem/źródłem generowanym itp. Spójrz na to: http://maven.apache.org/guides/mini/guide-using-one-source-directory .html – morpheus05

+0

@greenrobot jest jakieś rozwiązanie z tym? Mam ten problem na maven i naprawdę tu utknąłem :(dziwne jest to, że działało do wczoraj wieczorem, nagle zaczęło powtarzać powtarzające się klasy R i BuildConfig –

Odpowiedz

2

Według post Sven Strohschein w http://youtrack.jetbrains.com/issue/IDEA-94901 można spróbować:

  1. Usuwanie folderów "gen", "target" i "out"
  2. Przywrócenie zmian w plikach "ipr" i "iml" (lub po prostu skasuj wszystkie, być może nawet folder .idea)
  3. start IntelliJ 12
  4. Otwórz plik POM
  5. Prawy przycisk myszy -> "Maven" -> "powrotnego przywozu"
  6. "Build" -> "Odbuduj projekt"

Works fo mnie.

0

Z powyższego opisu domyślam się, że twoja struktura projektu różni się od domyślnej. Zobacz Introduction to the POM. Ale myślę, że android android:generate-sources jest bardziej interesująca, jeśli zmieniły katalogu aktywów itp

Przykład:

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

Tak, to różni się od standardowego layoutu Mavena.Katalog to staromodny układ Android z folderami src i gen bezpośrednio w katalogu głównym projektu. Czy masz konkretne sugestie? –

+0

Zmieniłem swój wpis. Nie mam projektu na Androida, więc nie mogę przetestować konfiguracji Android: generate-sources. Myślę, że musisz zmienić niektóre szczegóły tego. – morpheus05

+0

Nie jestem pewien co do tego podejścia: Mamy już katalog src, a domyślnym folderem res jest już $ {project.basedir}/res. –

1

Po wykryciu IDEA i dodaniu aspektu Android do modułu, rozpocznie się generowanie folderu gen w zwykłym miejscu, ale maven-android-plugin generuje własny katalog pod numerem target.

Musisz poinformować IDEA, aby umieścił wygenerowane pliki w tym samym miejscu, w którym utworzy je maven-android-plugin.

android ustawienia aspekt pierwszy, użyć modułu i sprawdzić możliwość korzystania cel Maven zamiast generować sam:

enter image description here

Następnie przejdź do ustawień modułu i ustawić ścieżkę wyjściową samo jak Maven, który jest target katalogu:

enter image description here

Usuń gen katalogów Czy mvn clean usunąć wszystkie unnece Pliki ssary.

Powiązane problemy