@@ -25,8 +25,13 @@ plugins {
2525 id ' org.jetbrains.kotlin.jvm' version ' 1.2.71'
2626 id ' net.corda.plugins.cordapp' version ' 5.0.12'
2727 id ' net.corda.plugins.cordformation' version ' 5.0.12'
28+ id ' org.jetbrains.dokka' version " 1.4.10.2"
29+ id ' maven-publish'
30+ id ' signing'
2831}
2932
33+ def moduleProjects = subprojects. findAll { gradle. ext. moduleProjects. contains(it. name) }
34+
3035allprojects {
3136 repositories {
3237 mavenLocal()
@@ -36,9 +41,8 @@ allprojects {
3641 maven { url ' https://ci-artifactory.corda.r3cev.com/artifactory/corda' }
3742 maven { url ' https://repo.gradle.org/gradle/libs-releases' }
3843
39- flatDir {
40- dirs " ${ rootProject.rootDir} /javax-json-shaded/build/libs"
41- }
44+ // Cordaptor snapshots are published here
45+ maven { url ' https://oss.sonatype.org/content/repositories/snapshots' }
4246 }
4347}
4448
@@ -47,6 +51,8 @@ subprojects {
4751 version = getProperty(" cordaptor_version" )
4852
4953 apply plugin : ' org.jetbrains.kotlin.jvm'
54+ apply plugin : ' maven-publish'
55+ apply plugin : ' signing'
5056
5157 tasks. withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile ) {
5258 kotlinOptions {
@@ -65,3 +71,72 @@ subprojects {
6571 archivesBaseName = " cordaptor-${ project.name} "
6672 }
6773}
74+
75+ // applying common configuration to modules that produce artifacts
76+ // which we publish to Maven Central
77+ configure(moduleProjects) {
78+ task sourcesJar(type : Jar ) {
79+ classifier = ' sources'
80+ from sourceSets. main. allSource
81+ }
82+
83+ task javadocJar(type : Jar ) {
84+ classifier = ' javadoc'
85+ from " ${ rootProject.projectDir} /etc/no-javadocs.txt"
86+ }
87+
88+ publishing {
89+ publications {
90+ maven(MavenPublication ) {
91+ artifactId = " cordaptor-${ project.name} "
92+
93+ from components. java
94+
95+ artifact sourcesJar
96+ artifact javadocJar
97+
98+ pom {
99+ url = " https://github.com/b180tech/cordaptor"
100+ licenses {
101+ license {
102+ name = " GNU Affero General Public License v3.0 or later"
103+ url = " https://spdx.org/licenses/AGPL-3.0-or-later"
104+ }
105+ }
106+ developers {
107+ developer {
108+ id = " bond180"
109+ name = " Bond180 Limited"
110+ 111+ }
112+ }
113+ scm {
114+ connection = " scm:git:git://github.com/b180tech/cordaptor.git"
115+ developerConnection = " scm:git:ssh://github.com:b180tech/cordaptor.git"
116+ url = " https://github.com/b180tech/cordaptor"
117+ }
118+ }
119+ }
120+ }
121+
122+ repositories {
123+ maven {
124+ credentials {
125+ username project. sonatypeOssUsername
126+ password project. sonatypeOssPassword
127+ }
128+
129+ name = " central"
130+
131+ def releasesRepoUrl = " https://oss.sonatype.org/service/local/staging/deploy/maven2"
132+ def snapshotsRepoUrl = " https://oss.sonatype.org/content/repositories/snapshots"
133+ url = version. endsWith(' SNAPSHOT' ) ? snapshotsRepoUrl : releasesRepoUrl
134+ }
135+ }
136+ }
137+
138+ signing {
139+ required { version. endsWith(' SNAPSHOT' ) }
140+ sign publishing. publications. maven
141+ }
142+ }
0 commit comments