Jak budować sources jar z gradle
Pracuję z projektem open source, który jest zbudowany z gradle. Chciałbym wygenerować (projekt) - źródła.plik jar, który mogę załadować do mojego IDE (IntelliJ IDEA) i debugować przez projekt. Wiem, jak załadować plik, jeśli mogę go wygenerować.
Przejrzałem dostępne zadania gradle dla projektu i nie ma takiego, które generuje plik JAR źródeł.
Jaki jest najprostszy sposób na wygenerowanie pliku sources jar dla tego projektu?
Dodawanie źródło do pliku jar, który zawiera skompilowane pliki klas, byłoby również w porządku.
5 answers
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives sourcesJar
archives javadocJar
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-13 17:05:53
Jeśli używasz Androida:
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
From here
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-10 16:45:08
Jeśli chcesz dodać źródła do skompilowanego pliku klas Jar, który również powiedziałeś, że będzie akceptowalny, możesz to zrobić z łatwością. Wystarczy dodać następujące elementy do pliku kompilacji. Widać, że teoretycznie jest to całkiem jak rozwiązanie do umieszczania źródeł w osobnym słoiku:
jar {
from sourceSets.main.allSource
}
Różnica polega na tym, że dodajesz go do głównego pliku JAR, mówiąc "jar" zamiast sourcesJar.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-10 16:47:59
To powinno zadziałać
assemble.dependsOn 'propertyJar'
task propertyJar(type: Jar) {
archiveName = "myJarName.jar"
from('src/main/resources') {
include '**'
}}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-09 11:31:54
Odpowiednikiem DSL Kotlina będzie:
tasks {
val sourcesJar by creating(Jar::class) {
dependsOn(JavaPlugin.CLASSES_TASK_NAME)
classifier = "sources"
from(java.sourceSets["main"].allSource)
}
val javadocJar by creating(Jar::class) {
dependsOn(JavaPlugin.JAVADOC_TASK_NAME)
classifier = "javadoc"
from(java.docsDir)
}
artifacts {
add("archives", sourcesJar)
add("archives", javadocJar)
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-03 03:12:19