2015-09-11 32 views
6

Mam projekt z wieloma modułami, a jeden moduł wykorzystuje funkcje innych modułów. Tak więc moduł z zależnościami ma plik jar w zależnościach kompilacji. Więc kiedy próbuję przejść do źródła, przechodzi do pliku .class ze słoika. Zamiast tego chcę, aby przejść do pliku .java modułu zależnego.Automatyczne dołączanie źródeł podczas importowania

Jednym ze sposobów jest ręczne wykonanie AttachSources.

Ponieważ mam wiele modułów z wieloma zależnościami;

  • Czy istnieje sposób, aby go wykonać podczas importu w jakiś sposób, np. Mając sourcePath.txt z lokalizacją źródła w każdym module.?

Struktura projektu:

Projecta:

  • ModuleAA (zależy ModulesAB)
  • ModuleAB (zależy ModulesAC)
  • ModuleAC

i wiele więcej modułów .

Odpowiedz

3

Aby uzyskać dostęp do źródeł modułów z projektu, zamiast importować słoik, należy użyć compile project (':module').

Na przykład, jeśli będę musiał zbudować swoją strukturę, to będzie wyglądać następująco:

Projecta: (pod com.example.projecta)

dependencies { 
    ... //Other dependencies(appcompat, jar files...) 
    compile project (':moduleaa') //Dependent of moduleAA 
    ... 
} 

ModuleAA: (w ramach com.example.moduleaa)

dependencies { 
    ... 
    compile project (':moduleab') //Dependent of moduleAB 
    ... 
} 

ModuleAB (pod com.example.moduleab)

dependencies { 
    ... 
    compile project (':moduleac') //Dependent of moduleAC 
    ... 
} 

ModuleAC (pod com.example.moduleac)

dependencies { 
    ... 
} 

Teraz Projecta mogą uzyskać dostęp do wszystkich modułów i ich zależności.

Aby nawigować między projektem a kodem źródłowym modułów, możesz użyć krótkiego klawisza, aby wyświetlić źródło. Mapę klawiszy można znaleźć pod adresem: File > Settings > Keymap > Main menu > View > Jump to source (or Show source). (zwykle kontrola + kliknięcie lewym przyciskiem lub F12).

EDIT

Jeśli masz moduł w innym projekcie, który co do importu i móc modyfikować tak, jakby to moduł na bieżącym projekcie, można zmodyfikować ustawienia.gradle tego bieżącego projektu z:

include ':module' 
project(':module').projectDir = new File("/<path_to_module>/other_project/module") 

Następnie moduł pojawi się w bieżącym projekcie.

+0

Jak już wspomniano, nie jest to opłacalna opcja dla mnie. Muszę zrozumieć, jak sprawić, by studio wzięło plik sourcePath.txt, który zawiera ścieżkę źródłową dla odpowiedniego modułu. – thepace

+0

Czy umieścisz pseudo-kod tego, co jest w twojej ścieżce źródłowej? – xiaomi

+0

sourcePath.txt zawiera pozycję pojedynczej linii wskazującą folder src w słoiku, tj. "E: \ a \ b \ c \ src \" – thepace

Powiązane problemy