Cum de a asambla dependențele de fișiere borcan într-un proiect multi-modul în gradle
- Java
- Gradle
Există Modulul 1 și Modulul 2. Ambele depind de modul comun. În funcție de biblioteci terțe părți în module se intersectează.
În funcție comună (fișier comun / build.gradle). Modulul-2 (fișier modul-2 / build.gradle): Modul-1 (fișier modul-1 / build.gradle):
Obiectiv: Pentru a crea un fișier jar pentru modulul-1 și modulul 2, cu toate dependențele necesare in interior, care ar putea fi rulate astfel: java -jar modul-1.jar.
Prima încercare: do Taxco borcan, este responsabil pentru fișierul rezultat, aceeași pentru toate cele trei module:
Metoda de mai sus funcționează, dar în fișierul jar modulul-1.jar (și modulul-2.jar) devine dependențelor duble de trecere pentru modulul-1 și, dimensiunea totală a fișierului comună este:
SIZE ((dep_module1 \ dep_common) src_module1 + 2 (dep_module1 ∩ dep_common) +)
A doua încercare: de a exclude din Taxco module borcan fișiere bibliotecă comună: Ca urmare, în toamna singura clasă common.jar fișiere modul comun. ca o consecință, în fișierul de dependență de modul de 1.jar este arhivat numai o singură dată, asta e bine.
Dar problema apare în cazul în cazul în care Common există o relație, iar în modulul-1 nu, la modulul-1 nivel, va trebui să descrie toate dependențele necesare comune, care este inacceptabil.
A treia încercare de: întoarcere comună la pasul 1, iar conținutul borcanului rezultatirueschego descrie manual toate dependențele, cu excepția intersecția lor Exemplu pentru Modulul-1: Această opțiune arată sintaxa corectă, dar dificil de descris.
Întrebarea 1: Cum pot specifica ca sursă de la borcan la Taxco
a) unitatea de proiect (codul din exemplul de mai sus - PIERDERE);
b) biblioteci terțe părți.
Întrebarea 2. Are soluția corectă pentru această problemă?