11import org.jetbrains.dokka.gradle.DokkaTaskPartial
22
3- val semVer: String? by project
4- val includeDokka: String? by project
3+ // Use `-Pgroup=com.github.UnitTestBot` to emulate JitPack publishing.
4+ val groupProp = providers.gradleProperty(" group" ).orNull
5+ // Use `-Pversion=1.5` to specify version for publishing.
6+ val versionProp = providers.gradleProperty(" version" ).orNull
57
6- group = " org.jacodb"
7- version = semVer ? : " 1.4-SNAPSHOT"
8+ group = groupProp ? : " org.jacodb"
9+ version = versionProp ? : " 1.4-SNAPSHOT"
810
911plugins {
1012 kotlin(" jvm" ) version Versions .kotlin
@@ -159,81 +161,77 @@ tasks.dokkaHtmlMultiModule {
159161 )
160162}
161163
162- val repoUrl: String = project.properties[" repoUrl" ] as ? String
163- ? : " https://maven.pkg.github.com/UnitTestBot/jacodb"
164-
165- if (! repoUrl.isNullOrEmpty()) {
166- configure(
167- listOf (
168- project(" :jacodb-api-common" ),
169- project(" :jacodb-api-jvm" ),
170- project(" :jacodb-api-storage" ),
171- project(" :jacodb-core" ),
172- project(" :jacodb-storage" ),
173- project(" :jacodb-approximations" ),
174- project(" :jacodb-taint-configuration" ),
175- project(" :jacodb-ets" ),
176- )
177- ) {
178- tasks {
179- val dokkaJavadocJar by creating(Jar ::class ) {
180- dependsOn(dokkaJavadoc)
181- from(dokkaJavadoc.flatMap { it.outputDirectory })
182- archiveClassifier.set(" javadoc" )
183- }
164+ val includeDokka: String? by project
184165
185- val sourcesJar by creating(Jar ::class ) {
186- archiveClassifier.set(" sources" )
187- from(sourceSets.getByName(" main" ).kotlin.srcDirs)
188- }
166+ configure(
167+ listOf (
168+ project(" :jacodb-api-common" ),
169+ project(" :jacodb-api-jvm" ),
170+ project(" :jacodb-api-storage" ),
171+ project(" :jacodb-core" ),
172+ project(" :jacodb-storage" ),
173+ project(" :jacodb-approximations" ),
174+ project(" :jacodb-taint-configuration" ),
175+ project(" :jacodb-ets" ),
176+ )
177+ ) {
178+ val sourcesJar by tasks.registering(Jar ::class ) {
179+ archiveClassifier.set(" sources" )
180+ from(sourceSets.getByName(" main" ).kotlin.srcDirs)
181+ }
189182
190- artifacts {
191- archives(sourcesJar)
192- if (includeDokka != null ) {
193- archives(dokkaJavadocJar)
194- }
195- }
183+ val dokkaJavadocJar by tasks.registering(Jar ::class ) {
184+ dependsOn(tasks.dokkaJavadoc)
185+ from(tasks.dokkaJavadoc.flatMap { it.outputDirectory })
186+ archiveClassifier.set(" javadoc" )
187+ }
196188
189+ artifacts {
190+ archives(sourcesJar)
191+ if (includeDokka != null ) {
192+ archives(dokkaJavadocJar)
197193 }
198- publishing {
199- publications {
200- register<MavenPublication >(" jar" ) {
201- from(components[" java" ])
202- setOf (" apiElements" , " runtimeElements" )
203- .flatMap { configName -> configurations[configName].hierarchy }
204- .forEach { configuration ->
205- configuration.dependencies.removeIf { dependency ->
206- dependency.version.isNullOrBlank()
207- }
194+ }
195+
196+ publishing {
197+ publications {
198+ register<MavenPublication >(" main" ) {
199+ from(components[" java" ])
200+ setOf (" apiElements" , " runtimeElements" )
201+ .flatMap { configName -> configurations[configName].hierarchy }
202+ .forEach { configuration ->
203+ configuration.dependencies.removeIf { dependency ->
204+ dependency.version.isNullOrBlank()
208205 }
209- artifact(tasks.named(" sourcesJar" ))
210- artifact(tasks.named(" dokkaJavadocJar" ))
206+ }
207+ artifact(sourcesJar)
208+ artifact(dokkaJavadocJar)
209+ addPom()
210+ signPublication(this @configure)
211+ }
212+ }
211213
212- groupId = " org.jacodb"
213- artifactId = project.name
214- addPom()
215- signPublication(this @configure)
214+ repositories {
215+ maven {
216+ name = " GitHubPackages"
217+ url = uri(" https://maven.pkg.github.com/UnitTestBot/jacodb" )
218+ credentials {
219+ username = System .getenv(" GITHUB_ACTOR" )
220+ password = System .getenv(" GITHUB_TOKEN" )
216221 }
217222 }
218223
219- repositories {
220- maven {
221- name = " repo"
222- url = uri(repoUrl)
223- val actor: String? by project
224- val token: String? by project
225-
226- credentials {
227- username = actor
228- password = token
229- }
230- }
224+ // Use `./gradlew publishAllPublicationsToBuildRepository -Pversion=1.5`
225+ // to publish to `./build/repository` directory.
226+ maven {
227+ name = " Build"
228+ url = uri(layout.buildDirectory.dir(" repository" ))
231229 }
232230 }
233231 }
234232}
235233
236- fun MavenPublication.signPublication (project : Project ) = with (project) {
234+ fun MavenPublication.signPublication (project : Project ) {
237235 signing {
238236 val gpgKey: String? by project
239237 val gpgPassphrase: String? by project
@@ -250,9 +248,9 @@ fun MavenPublication.signPublication(project: Project) = with(project) {
250248
251249fun MavenPublication.addPom () {
252250 pom {
253- packaging = " jar "
254- name .set(" org.jacodb " )
255- description.set( " analyse JVM bytecode with pleasure " )
251+ name.set( " JacoDB " )
252+ description .set(" Analyse JVM bytecode with pleasure " )
253+ url = " https://www.jacodb.org "
256254 issueManagement {
257255 url.set(" https://github.com/UnitTestBot/jacodb/issues" )
258256 }
@@ -261,7 +259,6 @@ fun MavenPublication.addPom() {
261259 developerConnection.set(" scm:git:https://github.com/UnitTestBot/jacodb.git" )
262260 url.set(" https://www.jacodb.org" )
263261 }
264- url.set(" https://www.jacodb.org" )
265262 licenses {
266263 license {
267264 name.set(" The Apache License, Version 2.0" )
0 commit comments