blob: 9a51e4f71a0a49e5912ee9109afc175f8a30c17b [file] [log] [blame]
simonetripodi451776a2012-08-24 14:21:58 +02001<?xml version="1.0" encoding="UTF-8"?>
Tatu Saloranta90c43522011-12-22 23:25:27 -08002<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">
Tatu Saloranta5ba72df2020-05-22 17:34:10 -07003 <!-- 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 -->
Ben Gertzfield66a12b62013-01-04 12:01:07 -08008 <modelVersion>4.0.0</modelVersion>
simonetripodi451776a2012-08-24 14:21:58 +02009
Tatu Saloranta90c43522011-12-22 23:25:27 -080010 <parent>
Tatu Saloranta09468092014-02-28 20:37:39 -080011 <groupId>com.fasterxml.jackson</groupId>
Tatu Salorantaf9ea9792017-09-09 17:27:52 -070012 <artifactId>jackson-base</artifactId>
Tatu Saloranta8eb15fd2020-04-28 16:46:24 -070013 <version>2.12.0-SNAPSHOT</version>
Tatu Saloranta90c43522011-12-22 23:25:27 -080014 </parent>
simonetripodi451776a2012-08-24 14:21:58 +020015
Tatu Saloranta90c43522011-12-22 23:25:27 -080016 <groupId>com.fasterxml.jackson.core</groupId>
17 <artifactId>jackson-databind</artifactId>
Tatu Saloranta8eb15fd2020-04-28 16:46:24 -070018 <version>2.12.0-SNAPSHOT</version>
simonetripodi451776a2012-08-24 14:21:58 +020019 <name>jackson-databind</name>
Lukasz Dywicki9fb18f42013-09-03 19:27:55 +020020 <packaging>bundle</packaging>
simonetripodi451776a2012-08-24 14:21:58 +020021 <description>General data-binding functionality for Jackson: works on core streaming API</description>
Tatu Saloranta7cf95f12014-11-06 08:28:25 -080022 <url>http://github.com/FasterXML/jackson</url>
Cowtowncoder16aa3052015-10-07 11:14:52 -070023 <inceptionYear>2008</inceptionYear>
Tatu Saloranta07cd0102020-01-28 19:43:42 -080024 <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
Tatu Saloranta90c43522011-12-22 23:25:27 -080032 <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>
Ben Gertzfield66a12b62013-01-04 12:01:07 -080035 <url>http://github.com/FasterXML/jackson-databind</url>
Tatu Saloranta25302b62020-04-25 17:15:11 -070036 <tag>HEAD</tag>
Tatu Saloranta90c43522011-12-22 23:25:27 -080037 </scm>
Tatu Saloranta90c43522011-12-22 23:25:27 -080038
Tatu Saloranta90c43522011-12-22 23:25:27 -080039 <properties>
Tatu Saloranta8658f242018-06-14 10:04:39 -070040 <!-- With Jackson 2.10 baseline is JDK 7 (except for annotations/streaming),
Tatu Saloranta5fdb9322016-02-28 17:47:30 -080041 and new language features (diamond pattern) may be used.
Tatu Saloranta65807342016-09-15 18:15:09 -070042 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)
Cowtowncoder37b4ad52015-10-02 17:09:37 -070045 -->
Tatu Saloranta8f4b6232016-02-03 19:03:17 -080046 <javac.src.version>1.7</javac.src.version>
47 <javac.target.version>1.7</javac.target.version>
Cowtowncoder37b4ad52015-10-02 17:09:37 -070048
Cowtowncoder129180d2015-08-14 14:54:06 -070049 <!-- Can not use default, since group id != Java package name here -->
50 <osgi.export>com.fasterxml.jackson.databind.*;version=${project.version}</osgi.export>
Tatu Saloranta3ebfcd12019-04-15 21:08:23 -070051 <!-- fix for databind#2299: using jackson-databind in an OSGi environment under Android -->
52 <osgi.import>
Tatu Saloranta7da282d2019-04-15 21:05:00 -070053 org.w3c.dom.bootstrap;resolution:=optional,
Tatu Saloranta3ebfcd12019-04-15 21:08:23 -070054 *
Tatu Saloranta7da282d2019-04-15 21:05:00 -070055 </osgi.import>
Ben Gertzfield5780f882013-01-03 17:04:21 -080056
Ben Gertzfield66a12b62013-01-04 12:01:07 -080057 <!-- Generate PackageVersion.java into this directory. -->
Tatu Salorantaf314ac72013-01-10 19:50:17 -080058 <packageVersion.dir>com/fasterxml/jackson/databind/cfg</packageVersion.dir>
Ben Gertzfield66a12b62013-01-04 12:01:07 -080059 <packageVersion.package>com.fasterxml.jackson.databind.cfg</packageVersion.package>
Tatu Saloranta3ac8ccc2017-09-07 10:08:39 -070060
Tatu Saloranta77bd2ef2019-02-08 19:25:12 -080061 <version.powermock>2.0.0</version.powermock>
Tatu Saloranta90c43522011-12-22 23:25:27 -080062 </properties>
63
Tatu Saloranta90c43522011-12-22 23:25:27 -080064 <dependencies>
65 <!-- Builds on core streaming API; also needs core annotations -->
66 <dependency>
67 <groupId>com.fasterxml.jackson.core</groupId>
Tatu Salorantadeaee9c2012-03-25 12:01:34 -070068 <artifactId>jackson-annotations</artifactId>
Tatu Salorantacd6ebaf2017-03-06 20:10:33 -080069 <!-- 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>
Tatu Saloranta90c43522011-12-22 23:25:27 -080074 </dependency>
75 <dependency>
76 <groupId>com.fasterxml.jackson.core</groupId>
Tatu Salorantadeaee9c2012-03-25 12:01:34 -070077 <artifactId>jackson-core</artifactId>
Tatu Salorantacd6ebaf2017-03-06 20:10:33 -080078 <version>${jackson.version.core}</version>
Tatu Saloranta90c43522011-12-22 23:25:27 -080079 </dependency>
Tatu Saloranta6e21fbf2011-12-24 10:08:25 -080080
Tatu Saloranta09468092014-02-28 20:37:39 -080081 <!-- and for testing we need a few libraries
Tatu Saloranta6e21fbf2011-12-24 10:08:25 -080082 libs for which we use reflection for code, but direct dep for testing
83 -->
Tatu Saloranta504464d2016-05-03 19:25:52 -070084
85 <dependency>
lufe66cfe88fe2015-06-30 15:35:30 +020086 <groupId>org.powermock</groupId>
Tatu Saloranta77bd2ef2019-02-08 19:25:12 -080087 <artifactId>powermock-core</artifactId>
88 <version>${version.powermock}</version>
lufe66cfe88fe2015-06-30 15:35:30 +020089 <scope>test</scope>
Tatu Saloranta3c35f1c2015-11-28 12:18:48 -080090 </dependency>
91 <dependency>
lufe66cfe88fe2015-06-30 15:35:30 +020092 <groupId>org.powermock</groupId>
Tatu Saloranta77bd2ef2019-02-08 19:25:12 -080093 <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>
lufe66cfe88fe2015-06-30 15:35:30 +0200101 <scope>test</scope>
Tatu Saloranta3c35f1c2015-11-28 12:18:48 -0800102 </dependency>
Michael Spiegele7c54202014-11-26 20:40:21 -0500103 <!-- For testing TestNoClassDefFoundDeserializer -->
104 <dependency>
Michael Spiegel95f3fab2014-11-29 10:51:55 -0500105 <groupId>javax.measure</groupId>
106 <artifactId>jsr-275</artifactId>
Cowtowncoder37b4ad52015-10-02 17:09:37 -0700107 <version>1.0.0</version>
Michael Spiegele7c54202014-11-26 20:40:21 -0500108 <scope>test</scope>
109 </dependency>
Tatu Saloranta90c43522011-12-22 23:25:27 -0800110 </dependencies>
111
Tatu Salorantadd97c732018-03-26 21:04:35 -0700112 <!-- 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
Tatu Saloranta90c43522011-12-22 23:25:27 -0800124 <build>
Tatu Saloranta7eeabba2014-04-26 12:23:49 -0700125 <plugins>
Tatu Salorantab6e6e572019-08-24 16:23:24 -0700126
127 <plugin>
128 <groupId>org.jacoco</groupId>
129 <artifactId>jacoco-maven-plugin</artifactId>
Tatu Salorantab6e6e572019-08-24 16:23:24 -0700130 <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
Tatu Salorantaf9ea9792017-09-09 17:27:52 -0700147 <!-- 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
Tatu Saloranta4294ffc2014-09-03 22:40:45 -0700159 <plugin>
Tatu Salorantad063daa2012-02-24 16:09:04 -0800160 <groupId>org.apache.maven.plugins</groupId>
Cowtowncoder044bb5a2014-10-03 10:50:17 -0700161 <version>${version.plugin.surefire}</version>
Tatu Salorantad063daa2012-02-24 16:09:04 -0800162 <artifactId>maven-surefire-plugin</artifactId>
Tatu Salorantad063daa2012-02-24 16:09:04 -0800163 <configuration>
Michael Spiegele7c54202014-11-26 20:40:21 -0500164 <classpathDependencyExcludes>
Michael Spiegel95f3fab2014-11-29 10:51:55 -0500165 <exclude>javax.measure:jsr-275</exclude>
Michael Spiegele7c54202014-11-26 20:40:21 -0500166 </classpathDependencyExcludes>
Tatu Salorantad063daa2012-02-24 16:09:04 -0800167 <excludes>
168 <exclude>com/fasterxml/jackson/failing/*.java</exclude>
169 </excludes>
Tatu Saloranta2a93c3c2019-11-26 13:25:54 -0800170 <!-- 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>
Tatu Salorantad063daa2012-02-24 16:09:04 -0800175 </configuration>
176 </plugin>
simonetripodi451776a2012-08-24 14:21:58 +0200177
Tatu Salorantaf9ea9792017-09-09 17:27:52 -0700178 <!-- parent definitions should be ok, but need to add more links -->
Tatu Salorantad063daa2012-02-24 16:09:04 -0800179 <plugin>
180 <groupId>org.apache.maven.plugins</groupId>
simonetripodi451776a2012-08-24 14:21:58 +0200181 <artifactId>maven-javadoc-plugin</artifactId>
simonetripodi451776a2012-08-24 14:21:58 +0200182 <configuration>
Tatu Salorantaf9ea9792017-09-09 17:27:52 -0700183 <links combine.children="append">
Tatu Saloranta8eb15fd2020-04-28 16:46:24 -0700184 <link>http://fasterxml.github.com/jackson-annotations/javadoc/2.12</link>
185 <link>http://fasterxml.github.com/jackson-core/javadoc/2.12</link>
simonetripodi451776a2012-08-24 14:21:58 +0200186 </links>
187 </configuration>
Tatu Salorantad063daa2012-02-24 16:09:04 -0800188 </plugin>
Tatu Salorantafe45e712013-12-13 20:09:00 -0800189
Tatu Salorantaf9ea9792017-09-09 17:27:52 -0700190 <!-- settings are fine, but needed to trigger execution! -->
Tatu Salorantafe45e712013-12-13 20:09:00 -0800191 <plugin>
Ben Gertzfield5780f882013-01-03 17:04:21 -0800192 <groupId>com.google.code.maven-replacer-plugin</groupId>
Ben Gertzfield66a12b62013-01-04 12:01:07 -0800193 <artifactId>replacer</artifactId>
Ben Gertzfield5780f882013-01-03 17:04:21 -0800194 </plugin>
Tatu Saloranta975e3602016-10-18 14:10:20 -0700195
Tatu Saloranta26ce3dc2019-03-08 21:25:43 -0800196 <!-- 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 -->
Tatu Saloranta975e3602016-10-18 14:10:20 -0700199 <plugin>
Tatu Saloranta26ce3dc2019-03-08 21:25:43 -0800200 <groupId>org.moditect</groupId>
201 <artifactId>moditect-maven-plugin</artifactId>
Tatu Saloranta975e3602016-10-18 14:10:20 -0700202 </plugin>
Tatu Saloranta5ba72df2020-05-22 17:34:10 -0700203
204 <plugin>
205 <groupId>de.jjohannes</groupId>
206 <artifactId>gradle-module-metadata-maven-plugin</artifactId>
207 </plugin>
208 </plugins>
Tatu Saloranta90c43522011-12-22 23:25:27 -0800209 </build>
Tatu Saloranta65c83692011-12-24 18:15:07 -0800210
Tatu Saloranta90c43522011-12-22 23:25:27 -0800211 <profiles>
Tatu Saloranta9af59042012-02-19 00:03:55 -0800212 <profile>
213 <id>release</id>
214 <properties>
215 <maven.test.skip>true</maven.test.skip>
216 <skipTests>true</skipTests>
217 </properties>
simonetripodi451776a2012-08-24 14:21:58 +0200218 </profile>
Youri Bonnaffé03b29e92020-07-03 02:05:14 +0200219 <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>
Tatu Saloranta90c43522011-12-22 23:25:27 -0800270 </profiles>
Tatu Saloranta90c43522011-12-22 23:25:27 -0800271
272</project>