Как опубликовать толстый JAR в JitPack, используя плагин shadowJar gradle, а не maven publish
Не сразу понятно, как опубликовать толстый JAR в JitPack, потому что у теневых документов нет раздела для JitPack, а у документов JitPack нет раздела о толстых банках.
Все документы говорят, что если вы включите maven-publish
тогда они выполнят задачу publishToMavenLocal
,
Обычно теневой кувшин для жира создается с помощью gradle shadowjar
но команда сборки на JitPack не настраивается, поэтому мы должны изменить наш publishToMavenLocal
использовать shadowJar.
2 ответа
Я сделал запрос поддержки с JitPack, и они вернулись со следующим кодом, который я протестировал, чтобы работать с 2018/04/12:
plugins {
id "com.github.johnrengelman.shadow" version "2.0.2"
}
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'com.github.johnrengelman.shadow'
group = 'com.github.jitpack-io'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.guava:guava:18.0'
testCompile 'junit:junit:4.12'
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
shadowJar {
archiveName = "$baseName-$version.$extension"
}
artifacts {
archives sourcesJar
archives javadocJar
archives shadowJar
}
Они опубликовали код через GitHub.
Его также можно комбинировать с упаковщиком грейдера:
allprojects {
task wrapper(type: Wrapper) {
gradleVersion = '4.4'
distributionType = Wrapper.DistributionType.ALL
}
}
Возможно, немного поздно, но я запустил его, но просто добавил артефакт в часть публикации следующим образом:
publishing {
publications {
mavenJava(MavenPublication) {
groupId project.group
artifactId project.name
version project.version
from components.java
artifact sourceJar {
classifier "sources"
}
artifact shadowJar
}
}....