Próbuję zbudować projekt JAR Gradle, który jest podprojektem innego i chciałby, aby wyjściowy plik JAR znajdował się w katalogu nadrzędnym (aby był specyficzny w katalogu "lib" rodzica lub rodzeństwa). Jak skonfigurować Gradle do tego i gdzie jest to udokumentowane?Gradle: jak skonfigurować lokalizację słoika w katalogu nadrzędnym projektu?
6
A
Odpowiedz
11
W build.gradle
dodać:
libsDirName = '../../lib'
Ustawienia konfiguracyjne są przedstawione w oficjalnych docs Gradle dla java plugin.
BTW, w pełni zgadzam się z intencją kryjącą się za komentarzami i odpowiedziami udzielonymi przez Petera i Hiery'ego, ale czasami najprostsze rozwiązanie jest najlepsze.
5
Uzgodniono z komentarzem, który napisał Peter. Jednak myślę, że chcesz wyrazić, że projekt nadrzędny zależy od danych wyjściowych modułu. Wyrażanie tego i zapewnienie, że rodzic skopiuje dane wyjściowe modułu częściowego do katalogu "lib" ma więcej sensu.
task assembleSubModules(type: Copy) {
destinationDir = file("lib")
into("lib") {
project.subprojects.each { p ->
from(p.tasks.withType(Jar)*.outputs)
}
}
}
Dlaczego chcesz to zrobić? Każdy projekt ma własny katalog wyjściowy kompilacji i nie polecam od niego odbiegać. Jest to mylące i oznacza, że nie będziesz już w stanie samodzielnie czyścić projektów. –
Witaj Peter - Rozumiem zasadę segregowania podprojektów, ale w tym przypadku tworzę wtyczkę Grails, która zależy od słoika znajdującego się w podprojekcie (zawierającym groovy źródła), który jest zbudowany przy użyciu Gradle. Chcę, aby jar był wyprowadzany do katalogu "lib" wtyczki. Wtyczka sama w sobie nie ma kompilacji (ponieważ jest to wtyczka Grails), tylko podprojekt. –
Mam nadzieję, że Gradle jest wystarczająco elastyczny, aby robić to, co chcę, bez narzucania ścisłych zasad dotyczących struktury projektu, takich jak Maven;) –