Przy stosowaniu multi strukturę Gradle projekt do naszego projektu, mój settings.gradle wygląda następująco:Gradle wielo projekt budowy z pustymi projektów
include "source:compA:api"
include "source:compA:core"
include "source:compB"
Gradle projektów dać mi
Root project 'tmp'
\--- Project ':source'
+--- Project ':source:compA'
| +--- Project ':source:compA:api'
| \--- Project ':source:compA:core'
\--- Project ':source:compB'
To jest dokładnie struktura katalogów!
W moim katalogu Mam build.gradle którego stosuje się wtyczki java do wszystkich podprojektów:
subprojects {
apply plugin: 'java'
}
Przy budowie I w końcu o artefakty dla : źródło: Compa które są puste, ponieważ jest to w rzeczywistości nie są to projekty, które są poprawnymi projektami java.
Jaki jest najlepszy sposób na uniknięcie pustego artefaktu?
Dlaczego po prostu nie zastosujesz wtyczki Java do api i core w swoich skryptach? –
Mogę to zrobić, ale moja rzeczywista struktura projektu jest znacznie bardziej zagnieżdżona, z wieloma projektami. Myślę, że jest to powszechny problem w przypadku starszych struktur projektu. I szukam elastycznego rozwiązania, w którym każdy projekt nie musi wiele wiedzieć o procesie kompilacji, w którym żyje. – VolkerK
IMMO moduł musi wyraźnie wiedzieć, że jest to projekt Java. To sprawi, że będzie on dużo bardziej wyrazisty dla każdego, kto na niego patrzy, niż deklarowanie tych informacji na poziomie root. –