• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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