Skip to content

Commit bea7a42

Browse files
committed
Finish publication preparation for bintray / maven central.
1 parent 2f60cb1 commit bea7a42

File tree

6 files changed

+358
-14
lines changed

6 files changed

+358
-14
lines changed

MAVEN_CENTRAL.adoc

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
= maven central
2+
3+
NOTE: JitPack build is failing because of gpg signing configuration.
4+
So we are commented out maven-central build config part in build.gradle
5+
6+
== prepare
7+
8+
[source,bash]
9+
----
10+
brew install gnupg@2.0
11+
12+
gpg2 --gen-key
13+
#...
14+
15+
gpg2 --list-keys
16+
/Users/mak/.gnupg/pubring.gpg
17+
-----------------------------
18+
pub 2048R/A5252B5B 2018-04-14
19+
uid [ultimate] Maksim Kostromin (daggerok) <daggerok@gmail.com>
20+
sub 2048R/7D692BAD 2018-04-14
21+
22+
gpg2 --list-secret-keys
23+
/Users/mak/.gnupg/secring.gpg
24+
-----------------------------
25+
sec 2048R/A5252B5B 2018-04-14
26+
uid Maksim Kostromin (daggerok) <daggerok@gmail.com>
27+
ssb 2048R/7D692BAD 2018-04-14
28+
29+
# test key
30+
gpg2 -ab build/libs/kotlin-html-dsl-1.0.0.jar
31+
32+
# distributing public key
33+
gpg2 --keyserver hkp://pool.sks-keyservers.net --send-keys A5252B5B
34+
# output: gpg: sending key A5252B5B to hkp server pool.sks-keyservers.net
35+
----
36+
37+
== gradle
38+
39+
.edit ./gradle.properties
40+
[source,properties]
41+
----
42+
ossrhUsername=daggerok
43+
ossrhPassword=....
44+
45+
signing.keyId=A5252B5B
46+
47+
signing.password=...
48+
signing.secretKeyRingFile=/Users/mak/.gnupg/secring.gpg
49+
----
50+
51+
.edit ./build.gradle
52+
[source,gradle]
53+
----
54+
plugins {
55+
id "maven"
56+
id "signing"
57+
// ...
58+
}
59+
// ...
60+
apply plugin: "maven-publish"
61+
62+
task javadocJar(type: Jar) {
63+
classifier = "javadoc"
64+
from javadoc
65+
}
66+
67+
javadoc.failOnError = false
68+
// ...
69+
artifacts {
70+
archives javadocJar, // ...
71+
}
72+
73+
signing {
74+
sign configurations.archives
75+
}
76+
77+
def ossrhUsername = getPropOrSystemOrDefault("ossrhUsername", "ossrhUsername")
78+
def ossrhPassword = getPropOrSystemOrDefault("ossrhPassword", "ossrhPassword")
79+
80+
//// where:
81+
//def getPropOrSystemOrDefault(def propertyName, def systemPropertyName) {
82+
// def defaultValue = System.getenv("$systemPropertyName") ?: "not-present"
83+
// return project.hasProperty("$propertyName") ? project.property("$propertyName") : defaultValue
84+
//}
85+
86+
uploadArchives {
87+
repositories {
88+
mavenDeployer {
89+
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
90+
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
91+
authentication(userName: ossrhUsername, password: ossrhPassword)
92+
}
93+
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
94+
authentication(userName: ossrhUsername, password: ossrhPassword)
95+
}
96+
pom.project {
97+
name "$project.name"
98+
packaging "jar"
99+
// optionally artifactId can be defined here
100+
description "$project.description"
101+
url "https://github.com/daggerok/kotlin-html-dsl"
102+
scm {
103+
connection "scm:git:git://github.com/daggerok/kotlin-html-dsl.git"
104+
developerConnection "scm:git:ssh://github.com:daggerok/kotlin-html-dsl.git"
105+
url "https://github.com/daggerok/kotlin-html-dsl/tree/master"
106+
}
107+
licenses {
108+
license {
109+
name "MIT License"
110+
url "http://www.opensource.org/licenses/mit-license.php"
111+
}
112+
}
113+
developers {
114+
developer {
115+
id "daggerok"
116+
name "Maksim Kostromin"
117+
email "daggerok@gmail.com"
118+
}
119+
}
120+
}
121+
}
122+
}
123+
}
124+
----
125+
126+
.publish to maven central
127+
[source,bash]
128+
----
129+
gradle uploadArchives
130+
----
131+
132+
== maven (TODO: failed on gpg...)

README.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
= kotlin-html-dsl image:https://travis-ci.org/daggerok/kotlin-html-dsl.svg?branch=master["Build Status", link="https://travis-ci.org/daggerok/kotlin-html-dsl"]
1+
= kotlin-html-dsl
22
:toc:
33
:toc-placement!:
44

55
//tag::content[]
66
image:https://travis-ci.org/daggerok/kotlin-html-dsl.svg?branch=master["Build Status", link="https://travis-ci.org/daggerok/kotlin-html-dsl"]
77
image:https://api.bintray.com/packages/daggerok/daggerok/kotlin-html-dsl/images/download.svg[link="https://bintray.com/bintray/jcenter?filterByPkgName=kotlin-html-dsl"]
88
image:https://jitpack.io/v/daggerok/kotlin-html-dsl.svg["JitPack", link="https://jitpack.io/#daggerok/kotlin-html-dsl"]
9+
image:https://maven-badges.herokuapp.com/maven-central/com.github.daggerok/kotlin-html-dsl/badge.svg?style=plastic["Maven Central", link="https://maven-badges.herokuapp.com/maven-central/com.github.daggerok/kotlin-html-dsl"]
910

1011
toc::[]
1112

@@ -356,8 +357,7 @@ dependencies {
356357

357358
== TODO
358359

359-
* add examples projects
360-
* publish to mavenCentral (TODO)
360+
* publish to mavenCentral
361361

362362
== contribution
363363

VERSIONS.adoc

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ see link:./BINTRAY.adoc[bintray] and link:./JITPACK.adoc[jitpack] READMEs to pic
66
|bintray jcenter/daggerok|jitpack
77

88
|0.1.PLUS
9-
|
9+
|-
1010

1111
|0.2.PLUS
12-
|0.2.PLUS
12+
|-
13+
14+
|0.3.ALL
15+
|0.3.ALL
1316

14-
//|1.0.PLUS
15-
//|1.0.PLUS
17+
//|1.0.ALL
18+
//|1.0.ALL
1619
|===

build.gradle

Lines changed: 75 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ plugins {
1111
id "idea"
1212
id "java"
1313
id "maven"
14+
id "signing"
1415
id "eclipse"
1516
id "maven-publish"
1617
id "com.jfrog.bintray" version "1.8.0"
@@ -23,7 +24,7 @@ plugins {
2324

2425
description = "Kotlin HTML DSL: The smallest kotlin extension library you have ever seen!"
2526
group = "com.github.daggerok"
26-
version = "0.3.ALL"
27+
version = "1.0.ALL"
2728
sourceCompatibility = targetCompatibility = "$javaVersion"
2829

2930
defaultTasks "clean", "build", "install", "publishToMavenLocal", "publish"
@@ -90,6 +91,13 @@ eclipse {
9091

9192
/* apply plugin: "maven-publish" */
9293

94+
task javadocJar(type: Jar) {
95+
classifier = "javadoc"
96+
from javadoc
97+
}
98+
99+
javadoc.failOnError = false
100+
93101
task classifierJar(type: Jar) {
94102
from sourceSets.main.output
95103
}
@@ -102,6 +110,8 @@ task classifierSourceJar(type: Jar) {
102110
from sourceSets.main.allJava
103111
}
104112

113+
javadoc.failOnError = false
114+
105115
def pomConfig = {
106116
scm {
107117
url "$project.vcsUrl"
@@ -126,6 +136,7 @@ publishing {
126136
publications {
127137
publication(MavenPublication) {
128138
from components.java
139+
artifact javadocJar { classifier = "javadoc" }
129140
artifact classifierJar { classifier = "1.8" }
130141
artifact sourceJar { classifier = "sources" }
131142
artifact classifierSourceJar { classifier = "1.8-sources" }
@@ -145,9 +156,14 @@ publishing {
145156
}
146157
}
147158

159+
def getPropOrSystemOrDefault(def propertyName, def systemPropertyName) {
160+
def defaultValue = System.getenv("$systemPropertyName") ?: "not-present"
161+
return project.hasProperty("$propertyName") ? project.property("$propertyName") : defaultValue
162+
}
163+
148164
bintray {
149-
user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
150-
key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
165+
user = getPropOrSystemOrDefault("bintrayUser", "BINTRAY_USER")
166+
key = getPropOrSystemOrDefault("bintrayApiKey", "BINTRAY_API_KEY")
151167
publications = ["publication"]
152168
pkg {
153169
userOrg = user
@@ -176,3 +192,59 @@ clean.doFirst {
176192
delete "$projectDir/$it"
177193
}
178194
}
195+
196+
/* maven cen/tral */
197+
artifacts {
198+
archives javadocJar, classifierJar, sourceJar, classifierSourceJar
199+
}
200+
201+
// avoid jitpack build fail
202+
// uncomment to publish build to maven central using command: `gradle uploadArchives`
203+
/*
204+
205+
signing {
206+
sign configurations.archives
207+
}
208+
209+
def ossrhUsername = getPropOrSystemOrDefault("ossrhUsername", "ossrhUsername")
210+
def ossrhPassword = getPropOrSystemOrDefault("ossrhPassword", "ossrhPassword")
211+
212+
uploadArchives {
213+
repositories {
214+
mavenDeployer {
215+
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
216+
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
217+
authentication(userName: ossrhUsername, password: ossrhPassword)
218+
}
219+
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
220+
authentication(userName: ossrhUsername, password: ossrhPassword)
221+
}
222+
pom.project {
223+
name "$project.name"
224+
packaging "jar"
225+
// optionally artifactId can be defined here
226+
description "$project.description"
227+
url "https://github.com/daggerok/kotlin-html-dsl"
228+
scm {
229+
connection "scm:git:git://github.com/daggerok/kotlin-html-dsl.git"
230+
developerConnection "scm:git:ssh://github.com:daggerok/kotlin-html-dsl.git"
231+
url "https://github.com/daggerok/kotlin-html-dsl/tree/master"
232+
}
233+
licenses {
234+
license {
235+
name "MIT License"
236+
url "http://www.opensource.org/licenses/mit-license.php"
237+
}
238+
}
239+
developers {
240+
developer {
241+
id "daggerok"
242+
name "Maksim Kostromin"
243+
email "daggerok@gmail.com"
244+
}
245+
}
246+
}
247+
}
248+
}
249+
}
250+
*/

0 commit comments

Comments
 (0)