Pracuję z projektem open source, który jest zbudowany z Gradle. Chciałbym wygenerować plik (projekt) -sources.jar, który mogę załadować do mojego IDE (IntelliJ IDEA) i debugować za pośrednictwem projektu. Wiem, jak załadować plik, jeśli mogę go wygenerować.
Przejrzałem dostępne zadania gradle dla projektu i nie ma takiego, który generuje plik jar źródeł.
Jaki jest najłatwiejszy sposób wygenerowania źródłowego pliku jar dla tego projektu?
Dodanie źródła do pliku jar, który zawiera skompilowane pliki klas, również byłoby w porządku.
Jeśli używasz Androida:
od tutaj
źródło
Jeśli chcesz dodać źródła do skompilowanego pliku JAR klas , co również powiedziałeś, że byłoby do przyjęcia, możesz to zrobić dość łatwo. Po prostu dodaj następujące elementy do pliku kompilacji. Możesz zobaczyć, że w teorii jest to całkiem podobne do rozwiązania polegającego na umieszczeniu źródeł w oddzielnym JAR:
Różnica polega na tym, że dodajesz go do głównego pliku JAR, mówiąc „jar” zamiast sourcesJar.
źródło
Rozwiązanie od Gradle 6.0
Zakładając, że używasz wtyczki
java
/java-library
z Gradle 6.0 lub nowszym, możesz uzyskaćsourcesJar
zadanie przy użyciu następującej konfiguracji:Jeśli dodatkowo użyjesz wtyczki
maven-publish
/ivy-publish
(obecnie zalecanej), spowoduje to również opublikowanie*-sources.jar
artefaktu wraz z główną publikacją Java.Zobacz także dokumentację Gradle .
źródło
to powinno działać
źródło
assemble.dependsOn
części, co powoduje, że zadanie jest uruchamiane automatycznie.Odpowiednik Kotlin DSL wyglądałby następująco:
źródło
Project."java"
rozwiązuje,JavaPluginExtension
które nie oferuje żadnychsourceSets
lubdocsDir
właściwości.from(sourceSets["main"].allJava)
from(javadoc)
ifrom(sourceSets["main"].allSource)
Podczas używania:
java
imaven-publish
wtyczkihttps://docs.gradle.org/current/dsl/org.gradle.api.publish.maven.MavenPublication.html
źródło