1<?xml version="1.0" encoding="UTF-8"?> 2<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/xsd/maven-4.0.0.xsd"> 3 <!-- This module was also published with a richer model, Gradle metadata, --> 4 <!-- which should be used instead. Do not delete the following line which --> 5 <!-- is to indicate to Gradle or any Gradle module metadata file consumer --> 6 <!-- that they should prefer consuming it instead. --> 7 <!-- do_not_remove: published-with-gradle-metadata --> 8 <modelVersion>4.0.0</modelVersion> 9 10 <parent> 11 <groupId>com.fasterxml.jackson</groupId> 12 <artifactId>jackson-base</artifactId> 13 <version>2.12.0-SNAPSHOT</version> 14 </parent> 15 16 <groupId>com.fasterxml.jackson.core</groupId> 17 <artifactId>jackson-databind</artifactId> 18 <version>2.12.0-SNAPSHOT</version> 19 <name>jackson-databind</name> 20 <packaging>bundle</packaging> 21 <description>General data-binding functionality for Jackson: works on core streaming API</description> 22 <url>http://github.com/FasterXML/jackson</url> 23 <inceptionYear>2008</inceptionYear> 24 <licenses> 25 <license> 26 <name>The Apache Software License, Version 2.0</name> 27 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> 28 <distribution>repo</distribution> 29 </license> 30 </licenses> 31 32 <scm> 33 <connection>scm:git:git@github.com:FasterXML/jackson-databind.git</connection> 34 <developerConnection>scm:git:git@github.com:FasterXML/jackson-databind.git</developerConnection> 35 <url>http://github.com/FasterXML/jackson-databind</url> 36 <tag>HEAD</tag> 37 </scm> 38 39 <properties> 40 <!-- With Jackson 2.10 baseline is JDK 7 (except for annotations/streaming), 41 and new language features (diamond pattern) may be used. 42 JDK classes are still loaded dynamically since there isn't much downside 43 (small number of types); this allows use on JDK 6 platforms still (including 44 Android) 45 --> 46 <javac.src.version>1.7</javac.src.version> 47 <javac.target.version>1.7</javac.target.version> 48 49 <!-- Can not use default, since group id != Java package name here --> 50 <osgi.export>com.fasterxml.jackson.databind.*;version=${project.version}</osgi.export> 51 <!-- fix for databind#2299: using jackson-databind in an OSGi environment under Android --> 52 <osgi.import> 53 org.w3c.dom.bootstrap;resolution:=optional, 54 * 55 </osgi.import> 56 57 <!-- Generate PackageVersion.java into this directory. --> 58 <packageVersion.dir>com/fasterxml/jackson/databind/cfg</packageVersion.dir> 59 <packageVersion.package>com.fasterxml.jackson.databind.cfg</packageVersion.package> 60 61 <version.powermock>2.0.0</version.powermock> 62 </properties> 63 64 <dependencies> 65 <!-- Builds on core streaming API; also needs core annotations --> 66 <dependency> 67 <groupId>com.fasterxml.jackson.core</groupId> 68 <artifactId>jackson-annotations</artifactId> 69 <!-- 06-Mar-2017, tatu: Although bom provides for dependencies, some legacy 70 usage seems to benefit from actually specifying version here in case 71 it is dependent on transitively 72 --> 73 <version>${jackson.version.annotations}</version> 74 </dependency> 75 <dependency> 76 <groupId>com.fasterxml.jackson.core</groupId> 77 <artifactId>jackson-core</artifactId> 78 <version>${jackson.version.core}</version> 79 </dependency> 80 81 <!-- and for testing we need a few libraries 82 libs for which we use reflection for code, but direct dep for testing 83 --> 84 85 <dependency> 86 <groupId>org.powermock</groupId> 87 <artifactId>powermock-core</artifactId> 88 <version>${version.powermock}</version> 89 <scope>test</scope> 90 </dependency> 91 <dependency> 92 <groupId>org.powermock</groupId> 93 <artifactId>powermock-module-junit4</artifactId> 94 <version>${version.powermock}</version> 95 <scope>test</scope> 96 </dependency> 97 <dependency> 98 <groupId>org.powermock</groupId> 99 <artifactId>powermock-api-mockito2</artifactId> 100 <version>${version.powermock}</version> 101 <scope>test</scope> 102 </dependency> 103 <!-- For testing TestNoClassDefFoundDeserializer --> 104 <dependency> 105 <groupId>javax.measure</groupId> 106 <artifactId>jsr-275</artifactId> 107 <version>1.0.0</version> 108 <scope>test</scope> 109 </dependency> 110 </dependencies> 111 112 <!-- Alas, need to include snapshot reference since otherwise can not find 113 snapshot of parent... --> 114 <repositories> 115 <repository> 116 <id>sonatype-nexus-snapshots</id> 117 <name>Sonatype Nexus Snapshots</name> 118 <url>https://oss.sonatype.org/content/repositories/snapshots</url> 119 <releases><enabled>false</enabled></releases> 120 <snapshots><enabled>true</enabled></snapshots> 121 </repository> 122 </repositories> 123 124 <build> 125 <plugins> 126 127 <plugin> 128 <groupId>org.jacoco</groupId> 129 <artifactId>jacoco-maven-plugin</artifactId> 130 <executions> 131 <execution> 132 <goals> 133 <goal>prepare-agent</goal> 134 </goals> 135 </execution> 136 <!-- attached to Maven test phase --> 137 <execution> 138 <id>report</id> 139 <phase>test</phase> 140 <goals> 141 <goal>report</goal> 142 </goals> 143 </execution> 144 </executions> 145 </plugin> 146 147 <!-- Important: enable enforcer plug-in: --> 148 <plugin> 149 <artifactId>maven-enforcer-plugin</artifactId> 150 <executions> <!-- or? combine.children="merge"> --> 151 <execution> 152 <id>enforce-properties</id> 153 <phase>validate</phase> 154 <goals><goal>enforce</goal></goals> 155 </execution> 156 </executions> 157 </plugin> 158 159 <plugin> 160 <groupId>org.apache.maven.plugins</groupId> 161 <version>${version.plugin.surefire}</version> 162 <artifactId>maven-surefire-plugin</artifactId> 163 <configuration> 164 <classpathDependencyExcludes> 165 <exclude>javax.measure:jsr-275</exclude> 166 </classpathDependencyExcludes> 167 <excludes> 168 <exclude>com/fasterxml/jackson/failing/*.java</exclude> 169 </excludes> 170 <!-- 26-Nov-2019, tatu: moar parallelism! Per-class basis, safe, efficient enough 171 ... although not 100% sure this makes much difference TBH 172 --> 173 <threadCount>4</threadCount> 174 <parallel>classes</parallel> 175 </configuration> 176 </plugin> 177 178 <!-- parent definitions should be ok, but need to add more links --> 179 <plugin> 180 <groupId>org.apache.maven.plugins</groupId> 181 <artifactId>maven-javadoc-plugin</artifactId> 182 <configuration> 183 <links combine.children="append"> 184 <link>http://fasterxml.github.com/jackson-annotations/javadoc/2.12</link> 185 <link>http://fasterxml.github.com/jackson-core/javadoc/2.12</link> 186 </links> 187 </configuration> 188 </plugin> 189 190 <!-- settings are fine, but needed to trigger execution! --> 191 <plugin> 192 <groupId>com.google.code.maven-replacer-plugin</groupId> 193 <artifactId>replacer</artifactId> 194 </plugin> 195 196 <!-- 04-Mar-2019, tatu: Add rudimentary JDK9+ module info. To build with JDK 8 197 will have to use `moduleInfoFile` as anything else requires JDK 9+ 198 --> 199 <plugin> 200 <groupId>org.moditect</groupId> 201 <artifactId>moditect-maven-plugin</artifactId> 202 </plugin> 203 204 <plugin> 205 <groupId>de.jjohannes</groupId> 206 <artifactId>gradle-module-metadata-maven-plugin</artifactId> 207 </plugin> 208 </plugins> 209 </build> 210 211 <profiles> 212 <profile> 213 <id>release</id> 214 <properties> 215 <maven.test.skip>true</maven.test.skip> 216 <skipTests>true</skipTests> 217 </properties> 218 </profile> 219 <profile> 220 <!-- Build Record tests using Java 14 if JDK is available --> 221 <id>java14+</id> 222 <activation> 223 <jdk>[14,</jdk> 224 </activation> 225 <build> 226 <plugins> 227 <plugin> 228 <groupId>org.codehaus.mojo</groupId> 229 <artifactId>build-helper-maven-plugin</artifactId> 230 <executions> 231 <execution> 232 <id>add-test-source</id> 233 <phase>generate-test-sources</phase> 234 <goals> 235 <goal>add-test-source</goal> 236 </goals> 237 <configuration> 238 <sources> 239 <source>src/test-jdk14/java</source> 240 </sources> 241 </configuration> 242 </execution> 243 </executions> 244 </plugin> 245 <plugin> 246 <groupId>org.apache.maven.plugins</groupId> 247 <artifactId>maven-compiler-plugin</artifactId> 248 <inherited>true</inherited> 249 <configuration> 250 <optimize>true</optimize> 251 <!-- Enable Java 14+ for all sources so that Intellij picks the right language level --> 252 <source>14</source> 253 <release>14</release> 254 <compilerArgs> 255 <arg>-parameters</arg> 256 <arg>--enable-preview</arg> 257 </compilerArgs> 258 </configuration> 259 </plugin> 260 <plugin> 261 <groupId>org.apache.maven.plugins</groupId> 262 <artifactId>maven-surefire-plugin</artifactId> 263 <configuration> 264 <argLine>--enable-preview</argLine> 265 </configuration> 266 </plugin> 267 </plugins> 268 </build> 269 </profile> 270 </profiles> 271 272</project> 273