Skip to content

Commit 5d4cac4

Browse files
Replace the jackson-base parent with a single self contained pom (#98)
The jackson-base parent pom is only really intended for Jackson projects, so this puts the jackson-databind-nullable project in a better position to not inherit parent changes that may be undesirable.
1 parent 3780b5f commit 5d4cac4

File tree

1 file changed

+248
-21
lines changed

1 file changed

+248
-21
lines changed

pom.xml

Lines changed: 248 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
22
<modelVersion>4.0.0</modelVersion>
3-
<parent>
4-
<groupId>com.fasterxml.jackson</groupId>
5-
<artifactId>jackson-base</artifactId>
6-
<version>2.20.1</version>
7-
</parent>
3+
84
<groupId>org.openapitools</groupId>
95
<artifactId>jackson-databind-nullable</artifactId>
106
<packaging>jar</packaging>
@@ -17,6 +13,7 @@
1713
<connection>scm:git:git@github.com:OpenAPITools/jackson-databind-nullable.git</connection>
1814
<developerConnection>scm:git:git@github.com:OpenAPITools/jackson-databind-nullable.git</developerConnection>
1915
<url>https://github.com/OpenAPITools/jackson-databind-nullable</url>
16+
<!-- TODO: This needs to be updated with each release. -->
2017
<tag>jackson-databind-nullable-0.2.5</tag>
2118
</scm>
2219
<licenses>
@@ -26,13 +23,32 @@
2623
<distribution>repo</distribution>
2724
</license>
2825
</licenses>
26+
<developers>
27+
<developer>
28+
<!-- Original project author -->
29+
<id>cbornet</id>
30+
</developer>
31+
</developers>
32+
<issueManagement>
33+
<system>Github</system>
34+
<url>https://github.com/OpenAPITools/jackson-databind-nullable/issues</url>
35+
</issueManagement>
36+
<organization>
37+
<name>OpenAPI Tools</name>
38+
<url>https://openapitools.org/</url>
39+
</organization>
2940

3041
<properties>
31-
<!-- Generate PackageVersion.java into this directory. -->
32-
<packageVersion.dir>org/openapitools/jackson/nullable</packageVersion.dir>
33-
<packageVersion.package>${project.groupId}.jackson.nullable</packageVersion.package>
3442
<java.version>8</java.version>
3543

44+
<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
45+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
46+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
47+
48+
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ssZ</maven.build.timestamp.format>
49+
<!-- TODO: Update on build. Used for reproducible builds. -->
50+
<project.build.outputTimestamp>2025-10-30T23:03:53Z</project.build.outputTimestamp>
51+
3652
<!-- region Dependency Versions -->
3753
<!-- Validator 8+ requires Java 11, Validator 9+ requires Java 17. -->
3854
<hibernate-validator.version>7.0.5.Final</hibernate-validator.version>
@@ -45,13 +61,22 @@
4561
<!-- endregion -->
4662

4763
<!-- region Plugin Versions -->
64+
<build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
4865
<central-publishing-maven-plugin.version>0.9.0</central-publishing-maven-plugin.version>
66+
<maven-bundle-plugin.version>5.1.9</maven-bundle-plugin.version>
67+
<maven-clean-plugin.version>3.5.0</maven-clean-plugin.version>
4968
<maven-compiler-plugin.version>3.14.1</maven-compiler-plugin.version>
69+
<maven-deploy-plugin.version>3.1.4</maven-deploy-plugin.version>
70+
<maven-enforcer-plugin.version>3.6.1</maven-enforcer-plugin.version>
5071
<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
72+
<maven-install-plugin.version>3.1.4</maven-install-plugin.version>
5173
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
5274
<maven-javadoc-plugin.version>3.12.0</maven-javadoc-plugin.version>
5375
<maven-replacer-plugin.version>1.5.3</maven-replacer-plugin.version>
76+
<maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
77+
<maven-site-plugin.version>4.0.0-M16</maven-site-plugin.version>
5478
<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
79+
<maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
5580
<!-- endregion -->
5681
</properties>
5782

@@ -127,20 +152,99 @@
127152

128153
<build>
129154
<plugins>
155+
<plugin>
156+
<groupId>org.codehaus.mojo</groupId>
157+
<artifactId>build-helper-maven-plugin</artifactId>
158+
<version>${build-helper-maven-plugin.version}</version>
159+
<executions>
160+
<execution>
161+
<!-- Adds the LICENSE file to the META-INF folder. -->
162+
<id>add-license</id>
163+
<phase>generate-resources</phase>
164+
<goals>
165+
<goal>add-resource</goal>
166+
</goals>
167+
<configuration>
168+
<resources>
169+
<resource>
170+
<directory>${project.basedir}</directory>
171+
<targetPath>META-INF</targetPath>
172+
<includes>
173+
<include>LICENSE</include>
174+
</includes>
175+
</resource>
176+
</resources>
177+
</configuration>
178+
</execution>
179+
<execution>
180+
<!--
181+
Add the generated-sources folder as a Maven source.
182+
The `PackageVersion.java` file is generated into this location.
183+
-->
184+
<id>add-generated-sources</id>
185+
<phase>generate-sources</phase>
186+
<goals>
187+
<goal>add-source</goal>
188+
</goals>
189+
<configuration>
190+
<sources>
191+
<source>${project.basedir}/target/generated-sources</source>
192+
</sources>
193+
</configuration>
194+
</execution>
195+
</executions>
196+
</plugin>
130197
<plugin>
131198
<groupId>com.google.code.maven-replacer-plugin</groupId>
132199
<artifactId>replacer</artifactId>
133200
<version>${maven-replacer-plugin.version}</version>
134201
<executions>
135202
<execution>
203+
<!-- Generate the `PackageVersion.java` file based on the template with variables replaced. -->
136204
<id>process-packageVersion</id>
137205
<phase>generate-sources</phase>
206+
<goals>
207+
<goal>replace</goal>
208+
</goals>
209+
<configuration>
210+
<file>
211+
${project.basedir}/src/main/java/org/openapitools/jackson/nullable/PackageVersion.java.in
212+
</file>
213+
<outputFile>
214+
${project.basedir}/target/generated-sources/org/openapitools/jackson/nullable/PackageVersion.java
215+
</outputFile>
216+
<replacements>
217+
<replacement>
218+
<token>@package@</token>
219+
<value>org.openapitools.jackson.nullable</value>
220+
</replacement>
221+
<replacement>
222+
<token>@projectversion@</token>
223+
<value>${project.version}</value>
224+
</replacement>
225+
<replacement>
226+
<token>@projectgroupid@</token>
227+
<value>${project.groupId}</value>
228+
</replacement>
229+
<replacement>
230+
<token>@projectartifactid@</token>
231+
<value>${project.artifactId}</value>
232+
</replacement>
233+
</replacements>
234+
</configuration>
138235
</execution>
139236
</executions>
140237
</plugin>
141238
<plugin>
142239
<artifactId>maven-compiler-plugin</artifactId>
143240
<version>${maven-compiler-plugin.version}</version>
241+
<configuration>
242+
<showDeprecation>true</showDeprecation>
243+
<showWarnings>true</showWarnings>
244+
<!-- Add full debug information when compiling. -->
245+
<debug>true</debug>
246+
<debuglevel>lines,source,vars</debuglevel>
247+
</configuration>
144248
<executions>
145249
<execution>
146250
<!-- Named specifically to override the default compile execution -->
@@ -152,6 +256,16 @@
152256
<release>${java.version}</release>
153257
</configuration>
154258
</execution>
259+
<execution>
260+
<!-- Named specifically to override the default testCompile execution -->
261+
<id>default-testCompile</id>
262+
<goals>
263+
<goal>testCompile</goal>
264+
</goals>
265+
<configuration>
266+
<release>${java.version}</release>
267+
</configuration>
268+
</execution>
155269
<execution>
156270
<id>compile-java-9</id>
157271
<phase>compile</phase>
@@ -168,10 +282,98 @@
168282
</execution>
169283
</executions>
170284
</plugin>
285+
<plugin>
286+
<artifactId>maven-enforcer-plugin</artifactId>
287+
<version>${maven-enforcer-plugin.version}</version>
288+
<executions>
289+
<execution>
290+
<id>enforce-java</id>
291+
<phase>validate</phase>
292+
<goals>
293+
<goal>enforce</goal>
294+
</goals>
295+
<configuration>
296+
<rules>
297+
<requireJavaVersion>
298+
<version>[1.8,)</version>
299+
</requireJavaVersion>
300+
<requireMavenVersion>
301+
<version>[3.6,)</version>
302+
</requireMavenVersion>
303+
<requirePluginVersions>
304+
<banLatest>true</banLatest>
305+
<banRelease>true</banRelease>
306+
<banSnapshots>true</banSnapshots>
307+
<phases>clean,deploy,site</phases>
308+
</requirePluginVersions>
309+
</rules>
310+
</configuration>
311+
</execution>
312+
</executions>
313+
</plugin>
314+
<plugin>
315+
<groupId>org.apache.felix</groupId>
316+
<artifactId>maven-bundle-plugin</artifactId>
317+
<version>${maven-bundle-plugin.version}</version>
318+
<extensions>true</extensions>
319+
<executions>
320+
<execution>
321+
<id>bundle-manifest</id>
322+
<phase>process-classes</phase>
323+
<goals>
324+
<goal>manifest</goal>
325+
</goals>
326+
<configuration>
327+
<instructions>
328+
<!-- Stop the JAVA_1_n_HOME variables from being treated as headers by Bnd -->
329+
<_removeheaders>
330+
Include-Resource,JAVA_1_3_HOME,JAVA_1_4_HOME,JAVA_1_5_HOME,JAVA_1_6_HOME,JAVA_1_7_HOME
331+
</_removeheaders>
332+
<_versionpolicy>${range;[===,=+);${@}}</_versionpolicy>
333+
<Bundle-Name>${project.name}</Bundle-Name>
334+
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
335+
<Bundle-Description>${project.description}</Bundle-Description>
336+
<Export-Package>${project.groupId}.*;version=${project.version}</Export-Package>
337+
<Import-Package>*</Import-Package>
338+
<Private-Package />
339+
<Include-Resource>{maven-resources}</Include-Resource>
340+
<Bundle-DocURL>${project.url}</Bundle-DocURL>
341+
<X-Compile-Source-JDK>${java.version}</X-Compile-Source-JDK>
342+
<X-Compile-Target-JDK>${java.version}</X-Compile-Target-JDK>
343+
<Implementation-Title>${project.name}</Implementation-Title>
344+
<Implementation-Version>${project.version}</Implementation-Version>
345+
<Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
346+
<Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
347+
<Specification-Title>${project.name}</Specification-Title>
348+
<Specification-Version>${project.version}</Specification-Version>
349+
<Specification-Vendor>${project.organization.name}</Specification-Vendor>
350+
</instructions>
351+
</configuration>
352+
</execution>
353+
</executions>
354+
</plugin>
355+
<plugin>
356+
<groupId>org.apache.maven.plugins</groupId>
357+
<artifactId>maven-jar-plugin</artifactId>
358+
<version>${maven-jar-plugin.version}</version>
359+
<configuration>
360+
<archive>
361+
<manifestEntries>
362+
<Multi-Release>true</Multi-Release>
363+
</manifestEntries>
364+
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
365+
</archive>
366+
</configuration>
367+
</plugin>
368+
<plugin>
369+
<groupId>org.apache.maven.plugins</groupId>
370+
<artifactId>maven-site-plugin</artifactId>
371+
<version>${maven-site-plugin.version}</version>
372+
</plugin>
171373
<plugin>
172374
<groupId>org.apache.maven.plugins</groupId>
173375
<artifactId>maven-surefire-plugin</artifactId>
174-
<version>3.5.4</version>
376+
<version>${maven-surefire-plugin.version}</version>
175377
<configuration>
176378
<statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
177379
<disable>false</disable>
@@ -194,18 +396,6 @@
194396
</statelessTestsetInfoReporter>
195397
</configuration>
196398
</plugin>
197-
<plugin>
198-
<groupId>org.apache.maven.plugins</groupId>
199-
<artifactId>maven-jar-plugin</artifactId>
200-
<version>${maven-jar-plugin.version}</version>
201-
<configuration>
202-
<archive>
203-
<manifestEntries>
204-
<Multi-Release>true</Multi-Release>
205-
</manifestEntries>
206-
</archive>
207-
</configuration>
208-
</plugin>
209399
<plugin>
210400
<groupId>org.apache.maven.plugins</groupId>
211401
<artifactId>maven-source-plugin</artifactId>
@@ -241,10 +431,46 @@
241431
<additionalOptions>
242432
<additionalOption>-Xdoclint:none</additionalOption>
243433
</additionalOptions>
434+
<links>
435+
<link>http://docs.oracle.com/javase/8/docs/api/</link>
436+
</links>
244437
</configuration>
245438
</plugin>
439+
<plugin>
440+
<groupId>org.apache.maven.plugins</groupId>
441+
<artifactId>maven-clean-plugin</artifactId>
442+
<version>${maven-clean-plugin.version}</version>
443+
</plugin>
444+
<plugin>
445+
<groupId>org.apache.maven.plugins</groupId>
446+
<artifactId>maven-resources-plugin</artifactId>
447+
<version>${maven-resources-plugin.version}</version>
448+
</plugin>
449+
<plugin>
450+
<groupId>org.apache.maven.plugins</groupId>
451+
<artifactId>maven-install-plugin</artifactId>
452+
<version>${maven-install-plugin.version}</version>
453+
</plugin>
454+
<plugin>
455+
<groupId>org.apache.maven.plugins</groupId>
456+
<artifactId>maven-deploy-plugin</artifactId>
457+
<version>${maven-deploy-plugin.version}</version>
458+
</plugin>
246459
</plugins>
247460
</build>
461+
<repositories>
462+
<repository>
463+
<releases>
464+
<enabled>false</enabled>
465+
</releases>
466+
<snapshots>
467+
<enabled>true</enabled>
468+
</snapshots>
469+
<id>central-snapshots</id>
470+
<name>Sonatype Central Portal (snapshots)</name>
471+
<url>https://central.sonatype.com/repository/maven-snapshots</url>
472+
</repository>
473+
</repositories>
248474
<profiles>
249475
<profile>
250476
<id>ossrh-publish</id>
@@ -294,6 +520,7 @@
294520
<publishingServerId>central</publishingServerId>
295521
<autoPublish>true</autoPublish>
296522
<checksums>required</checksums>
523+
<deploymentName>Deployment-${project.artifactId}</deploymentName>
297524
</configuration>
298525
</plugin>
299526
</plugins>

0 commit comments

Comments
 (0)