1616 * - ASL 2.0: http://www.apache.org/licenses/LICENSE-2.0.txt
1717 */
1818
19+ buildscript {
20+ repositories {
21+ mavenCentral()
22+ }
23+ dependencies {
24+ classpath ' biz.aQute.bnd:biz.aQute.bnd.gradle:4.2.0'
25+ }
26+ };
1927
28+ plugins {
29+ id(" net.ltgt.errorprone" ) version " 0.8.1" apply false
30+ }
2031
2132/*
2233 * This has to be here... It will not be taken into account in common.gradle!
5162apply(plugin : " java" );
5263apply(plugin : " maven" );
5364apply(plugin : " signing" );
54- apply(plugin : " osgi " );
65+ apply(plugin : " biz.aQute.bnd.builder " );
5566apply(plugin : " idea" );
5667apply(plugin : " eclipse" );
68+ apply(plugin : " net.ltgt.errorprone" );
5769
5870apply(from : " project.gradle" );
5971
72+ group = " com.github.java-json-tools" ;
73+
74+ ext. forRelease = ! version. endsWith(" -SNAPSHOT" );
75+
6076/*
6177 * Repositories to use
6278 */
6379repositories {
6480 mavenCentral();
81+ if (! forRelease) {
82+ maven {
83+ url " https://oss.sonatype.org/content/repositories/snapshots"
84+ }
85+ }
86+ /* Allow staging references for last pre-release testing. */
87+ if (project. properties. containsKey(" sonatypeUsername" )) {
88+ maven {
89+ url " https://oss.sonatype.org/service/local/staging/deploy/maven2"
90+ credentials {
91+ username = project. properties[" sonatypeUsername" ]
92+ password = project. properties[" sonatypePassword" ]
93+ }
94+ }
95+ }
96+ }
97+
98+ /*
99+ * Add errorprone checking.
100+ */
101+ dependencies {
102+ errorprone(" com.google.errorprone:error_prone_core:2.3.3" )
103+ errorproneJavac(" com.google.errorprone:javac:9+181-r4173-1" )
65104}
66105
67106/*
68107 * Necessary! Otherwise TestNG will not be used...
69108 *
70- * Also, we don't want gradle's default HTML report: it does not support
71- * parameterized tests which I use a _lot_.
72109 */
73110test {
74111 useTestNG() {
@@ -84,6 +121,20 @@ task sourcesJar(type: Jar, dependsOn: classes) {
84121 from sourceSets. main. allSource;
85122}
86123
124+ /*
125+ * Lint all the things!
126+ */
127+ allprojects {
128+ gradle. projectsEvaluated {
129+ tasks. withType(JavaCompile ) {
130+ options. compilerArgs << " -Xlint:all" << " -Xlint:-serial" << " -Xlint:-deprecation" << " -Werror"
131+ }
132+ tasks. withType(Javadoc ) {
133+ options. addStringOption(' Xwerror' , ' -quiet' )
134+ }
135+ }
136+ }
137+
87138/*
88139 * Javadoc: we need to tell where the overview.html is, it will not pick it up
89140 * automatically...
@@ -104,39 +155,42 @@ artifacts {
104155 archives javadocJar;
105156}
106157
107- task wrapper ( type : Wrapper ) {
108- gradleVersion = " 1.11 " ;
109- distributionUrl = " http ://services.gradle.org/distributions/gradle-${ gradleVersion} -all.zip" ;
158+ wrapper {
159+ gradleVersion = " 5.6.3 " ;
160+ distributionUrl = " https ://services.gradle.org/distributions/gradle-${ gradleVersion} -all.zip" ;
110161}
111162
112- task pom << {
113- pom {}. writeTo(" ${ projectDir} /pom.xml" );
163+ task pom {
164+ doLast {
165+ pom {}. writeTo(" ${ projectDir} /pom.xml" );
166+ }
114167}
115168
116169/*
117170 * SIGNING
118171 */
119172
120173project. ext {
121- gitrwscm = sprintf (" git@github.com:fge/%s" , name);
122- gitroscm = sprintf (" https://github.com/fge/%s.git" , name);
123- projectURL = sprintf (" https://github.com/fge/%s" , name);
174+ scmUrl = sprintf (" git@github.com:java-json-tools/%s.git" , name);
175+ projectURL = sprintf (" https://github.com/java-json-tools/%s" , name);
124176 sonatypeStaging = " https://oss.sonatype.org/service/local/staging/deploy/maven2/" ;
125177 sonatypeSnapshots = " https://oss.sonatype.org/content/repositories/snapshots/" ;
126178};
127179
128- task checkSigningRequirements << {
129- def requiredProperties = [ " sonatypeUsername" , " sonatypePassword" ];
130- def noDice = false ;
131- requiredProperties. each {
132- if (project. properties[it] == null ) {
133- noDice = true ;
134- System . err. printf (" property \" %s\" is not defined!" )
180+ task checkSigningRequirements {
181+ doLast {
182+ def requiredProperties = [ " sonatypeUsername" , " sonatypePassword" ];
183+ def noDice = false ;
184+ requiredProperties. each {
185+ if (project. properties[it] == null ) {
186+ noDice = true ;
187+ System . err. printf (" property \" %s\" is not defined!\n " , it);
188+ }
135189 }
190+ if (noDice)
191+ throw new IllegalStateException (" missing required properties for " +
192+ " upload" );
136193 }
137- if (noDice)
138- throw new IllegalStateException (" missing required properties for " +
139- " upload" );
140194}
141195
142196uploadArchives {
@@ -172,15 +226,15 @@ uploadArchives {
172226 uploadArchives. repositories. mavenDeployer
173227]* . pom* . whenConfigured { pom ->
174228 pom. project {
175- name " ${ name} " ;
229+ name " ${ project. name} " ;
176230 packaging " jar" ;
177- description " ${ description} " ;
231+ description " ${ project.ext. description} " ;
178232 url " ${ projectURL} " ;
179233
180234 scm {
181- url " ${ gitrwscm } " ;
182- connection " ${ gitrwscm } " ;
183- developerConnection " ${ gitroscm } " ;
235+ url " ${ scmUrl } " ;
236+ connection " ${ scmUrl } " ;
237+ developerConnection " scm:git: ${ scmUrl } " ;
184238 }
185239
186240 licenses {
@@ -198,15 +252,14 @@ uploadArchives {
198252
199253 developers {
200254 developer {
201- id " fge " ;
202- name " Francis Galiegue " ;
203- email " fgaliegue @gmail.com" ;
255+ id " huggsboson " ;
256+ name " John Huffaker " ;
257+ email " jhuffaker+java-json-tools @gmail.com" ;
204258 }
205259 }
206260 }
207261}
208262
209- ext. forRelease = ! version. endsWith(" -SNAPSHOT" );
210263signing {
211264 required { forRelease && gradle. taskGraph. hasTask(" uploadArchives" ) };
212265 sign configurations. archives;
0 commit comments