1
1
plugins {
2
2
id ' jacoco'
3
+ id ' io.github.gradle-nexus.publish-plugin' version ' 1.1.0'
3
4
}
4
5
6
+ nexusPublishing {
7
+ repositories {
8
+ sonatype()
9
+ }
10
+ }
11
+
12
+ def projectsVersion = ' 3.0.0'
13
+ def isReleaseVersion = ! projectsVersion. endsWith(" SNAPSHOT" )
14
+
5
15
allprojects {
6
16
apply plugin : ' idea'
7
17
8
18
group = ' com.github.gumtreediff'
9
- version = ' 3.0.0-SNAPSHOT '
19
+ version = projectsVersion
10
20
11
21
repositories {
12
22
mavenCentral()
13
23
}
14
24
}
15
25
16
- ext. isRelease = ! project. version. endsWith(" SNAPSHOT" )
17
-
18
26
subprojects {
19
27
apply plugin : ' java'
20
28
sourceCompatibility = ' 11'
@@ -28,6 +36,7 @@ subprojects {
28
36
withJavadocJar()
29
37
withSourcesJar()
30
38
}
39
+
31
40
javadoc {
32
41
options. addBooleanOption(' html5' , true )
33
42
}
@@ -124,26 +133,83 @@ task jacocoRootReport(type: JacocoReport, group: 'Coverage reports') {
124
133
}
125
134
}
126
135
136
+ def projectDescriptions = [
137
+ client : ' GumTree abstract client module.' ,
138
+ ' client.diff' : ' GumTree diff client.' ,
139
+ core : ' GumTree core module.' , ' gen.antlr3' : ' GumTree abstract AntLR module.' ,
140
+ ' gen.antlr3-antlr' : ' GumTree tree generator for AntLR grammars (AntLR based)' ,
141
+ ' gen.antlr3-json' : ' GumTree tree generator for JSON code (AntLR based).' ,
142
+ ' gen.antlr3-php' : ' GumTree tree generator for PHP code (AntLR based).' ,
143
+ ' gen.antlr3-r' : ' GumTree tree generator for R code (AntLR based).' ,
144
+ ' gen.antlr3-xml' : ' GumTree tree generator for XML code (AntLR based).' ,
145
+ ' gen.antlr4' : ' GumTree abstract AntLR4 module.' ,
146
+ ' gen.antlr4-matlab' : ' GumTree abstract AntLR4 module.' ,
147
+ ' gen.c' : ' GumTree tree generator for C code. Requires cgum.' ,
148
+ ' gen.css' : ' GumTree tree generator for CSS code based on ph-css.' ,
149
+ ' gen.javaparser' : ' GumTree tree generator for Java code (JavaParser based).' ,
150
+ ' gen.jdt' : ' GumTree tree generator for Java code (Eclipse JDT based).' ,
151
+ ' gen.js' : ' GumTree tree generator for JavaScript code (Rhino based).' ,
152
+ ' gen.python' : ' GumTree tree generator for Python. Requires pythonparser.' ,
153
+ ' gen.ruby' : ' GumTree tree generator for Ruby code (JRuby based).' ,
154
+ ' gen.srcml' : ' GumTree tree generator for C/C++, C# and Java code. Requires srcml.' ,
155
+ ]
156
+
127
157
configure(subprojects. findAll { ! (it. name in [' dist' , ' benchmark' ]) }) { subproject ->
128
158
apply plugin : " maven-publish"
159
+ apply plugin : " signing"
129
160
130
- publishing {
131
- repositories {
132
- maven {
133
- name = " GitHubPackages"
134
- url = uri(" https://maven.pkg.github.com/GumTreeDiff/gumtree" )
135
- credentials {
136
- username = project. findProperty(" gpr.actor" ) ?: System . getenv(" GITHUB_ACTOR" )
137
- password = project. findProperty(" gpr.token" ) ?: System . getenv(" GITHUB_TOKEN" )
138
- }
139
- }
140
- }
161
+ publishing {
141
162
publications {
142
- gpr (MavenPublication ) {
163
+ gumtreeDist (MavenPublication ) {
143
164
from(components. java)
165
+
166
+ pom {
167
+ name = " GumTree ${ subproject.name} "
168
+ description = projectDescriptions[subproject. name]
169
+ url = ' https://github.com/GumTreeDiff/gumtree/'
170
+
171
+ scm {
172
+ connection = ' scm:git:https://github.com/GumTreeDiff/gumtree/'
173
+ developerConnection = ' scm:git:https://github.com/GumTreeDiff/gumtree/'
174
+ url = ' https://github.com/GumTreeDiff/gumtree/'
175
+ }
176
+
177
+ licenses {
178
+ license {
179
+ name = ' GNU Lesser General Public License v3.0'
180
+ url = ' h ttps://www.gnu.org/copyleft/lesser.html'
181
+ }
182
+ }
183
+
184
+ developers {
185
+ developer {
186
+ id = ' jre'
187
+ name = ' Jean-Rémy Falleri'
188
+ email = ' jr.falleri@gmail.com'
189
+ }
190
+
191
+ developer {
192
+ id = ' flop'
193
+ name = ' Floréal Morandat'
194
+ email = ' florealm@gmail.com'
195
+ }
196
+
197
+ developer {
198
+ id = ' matias'
199
+ name = ' Matias Martinez'
200
+ email = ' matias.sebastian.martinez@gmail.com'
201
+ }
202
+ }
203
+ }
144
204
}
145
205
}
146
206
}
207
+
208
+ signing {
209
+ required { isReleaseVersion }
210
+ useInMemoryPgpKeys(findProperty(" gumtreeKey" ), findProperty(" gumtreeKeyPassphrase" ))
211
+ sign publishing. publications. gumtreeDist
212
+ }
147
213
}
148
214
149
215
evaluationDependsOnChildren()
0 commit comments