jackson-databind-2.14.0.pom 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  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. <parent>
  10. <groupId>com.fasterxml.jackson</groupId>
  11. <artifactId>jackson-base</artifactId>
  12. <version>2.14.0</version>
  13. </parent>
  14. <groupId>com.fasterxml.jackson.core</groupId>
  15. <artifactId>jackson-databind</artifactId>
  16. <version>2.14.0</version>
  17. <name>jackson-databind</name>
  18. <packaging>bundle</packaging>
  19. <description>General data-binding functionality for Jackson: works on core streaming API</description>
  20. <url>https://github.com/FasterXML/jackson</url>
  21. <inceptionYear>2008</inceptionYear>
  22. <licenses>
  23. <license>
  24. <name>The Apache Software License, Version 2.0</name>
  25. <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
  26. <distribution>repo</distribution>
  27. </license>
  28. </licenses>
  29. <scm>
  30. <connection>scm:git:git@github.com:FasterXML/jackson-databind.git</connection>
  31. <developerConnection>scm:git:git@github.com:FasterXML/jackson-databind.git</developerConnection>
  32. <url>https://github.com/FasterXML/jackson-databind</url>
  33. <tag>jackson-databind-2.14.0</tag>
  34. </scm>
  35. <properties>
  36. <!-- Until Jackson 2.11 (inclusive) baseline was JDK 7 (except for annotations/streaming),
  37. with 2.12 baseline became JDK8
  38. -->
  39. <javac.src.version>1.8</javac.src.version>
  40. <javac.target.version>1.8</javac.target.version>
  41. <!-- Can not use default, since group id != Java package name here -->
  42. <osgi.export>com.fasterxml.jackson.databind.*;version=${project.version}</osgi.export>
  43. <!-- fix for databind#2299: using jackson-databind in an OSGi environment under Android -->
  44. <osgi.import>
  45. org.w3c.dom.bootstrap;resolution:=optional,
  46. *
  47. </osgi.import>
  48. <!-- Generate PackageVersion.java into this directory. -->
  49. <packageVersion.dir>com/fasterxml/jackson/databind/cfg</packageVersion.dir>
  50. <packageVersion.package>com.fasterxml.jackson.databind.cfg</packageVersion.package>
  51. <version.powermock>2.0.9</version.powermock>
  52. <!-- for Reproducible Builds -->
  53. <project.build.outputTimestamp>2022-11-05T20:38:26Z</project.build.outputTimestamp>
  54. </properties>
  55. <dependencies>
  56. <!-- Builds on core streaming API; also needs core annotations -->
  57. <dependency>
  58. <groupId>com.fasterxml.jackson.core</groupId>
  59. <artifactId>jackson-annotations</artifactId>
  60. <!-- 06-Mar-2017, tatu: Although bom provides for dependencies, some legacy
  61. usage seems to benefit from actually specifying version here in case
  62. it is dependent on transitively
  63. -->
  64. <version>${jackson.version.annotations}</version>
  65. </dependency>
  66. <dependency>
  67. <groupId>com.fasterxml.jackson.core</groupId>
  68. <artifactId>jackson-core</artifactId>
  69. <version>${jackson.version.core}</version>
  70. </dependency>
  71. <!-- and for testing we need a few libraries
  72. libs for which we use reflection for code, but direct dep for testing
  73. -->
  74. <dependency>
  75. <groupId>org.powermock</groupId>
  76. <artifactId>powermock-core</artifactId>
  77. <version>${version.powermock}</version>
  78. <scope>test</scope>
  79. </dependency>
  80. <dependency>
  81. <groupId>org.powermock</groupId>
  82. <artifactId>powermock-module-junit4</artifactId>
  83. <version>${version.powermock}</version>
  84. <scope>test</scope>
  85. </dependency>
  86. <dependency>
  87. <groupId>org.powermock</groupId>
  88. <artifactId>powermock-api-mockito2</artifactId>
  89. <version>${version.powermock}</version>
  90. <scope>test</scope>
  91. </dependency>
  92. <dependency>
  93. <groupId>com.google.guava</groupId>
  94. <artifactId>guava-testlib</artifactId>
  95. <version>31.1-jre</version>
  96. <scope>test</scope>
  97. </dependency>
  98. <!-- For testing TestNoClassDefFoundDeserializer -->
  99. <dependency>
  100. <groupId>javax.measure</groupId>
  101. <artifactId>jsr-275</artifactId>
  102. <version>0.9.1</version>
  103. <scope>test</scope>
  104. </dependency>
  105. </dependencies>
  106. <!-- Alas, need to include snapshot reference since otherwise can not find
  107. snapshot of parent... -->
  108. <repositories>
  109. <repository>
  110. <id>sonatype-nexus-snapshots</id>
  111. <name>Sonatype Nexus Snapshots</name>
  112. <url>https://oss.sonatype.org/content/repositories/snapshots</url>
  113. <releases><enabled>false</enabled></releases>
  114. <snapshots><enabled>true</enabled></snapshots>
  115. </repository>
  116. </repositories>
  117. <build>
  118. <plugins>
  119. <plugin>
  120. <groupId>org.jacoco</groupId>
  121. <artifactId>jacoco-maven-plugin</artifactId>
  122. <executions>
  123. <execution>
  124. <goals>
  125. <goal>prepare-agent</goal>
  126. </goals>
  127. </execution>
  128. <!-- attached to Maven test phase -->
  129. <execution>
  130. <id>report</id>
  131. <phase>test</phase>
  132. <goals>
  133. <goal>report</goal>
  134. </goals>
  135. </execution>
  136. </executions>
  137. </plugin>
  138. <!-- Important: enable enforcer plug-in: -->
  139. <plugin>
  140. <artifactId>maven-enforcer-plugin</artifactId>
  141. <executions> <!-- or? combine.children="merge"> -->
  142. <execution>
  143. <id>enforce-properties</id>
  144. <phase>validate</phase>
  145. <goals><goal>enforce</goal></goals>
  146. </execution>
  147. </executions>
  148. </plugin>
  149. <plugin>
  150. <groupId>org.apache.maven.plugins</groupId>
  151. <version>${version.plugin.surefire}</version>
  152. <artifactId>maven-surefire-plugin</artifactId>
  153. <configuration>
  154. <classpathDependencyExcludes>
  155. <exclude>javax.measure:jsr-275</exclude>
  156. </classpathDependencyExcludes>
  157. <excludes>
  158. <exclude>**/failing/**/*.java</exclude>
  159. </excludes>
  160. <!-- 26-Nov-2019, tatu: moar parallelism! Per-class basis, safe, efficient enough
  161. ... although not 100% sure this makes much difference TBH
  162. -->
  163. <threadCount>4</threadCount>
  164. <parallel>classes</parallel>
  165. </configuration>
  166. </plugin>
  167. <!-- parent definitions should be ok, but need to add more links -->
  168. <plugin>
  169. <groupId>org.apache.maven.plugins</groupId>
  170. <artifactId>maven-javadoc-plugin</artifactId>
  171. <configuration>
  172. <links combine.children="append">
  173. <link>https://fasterxml.github.io/jackson-annotations/javadoc/2.14</link>
  174. <link>https://fasterxml.github.io/jackson-core/javadoc/2.14</link>
  175. </links>
  176. </configuration>
  177. </plugin>
  178. <!-- settings are fine, but needed to trigger execution! -->
  179. <plugin>
  180. <groupId>com.google.code.maven-replacer-plugin</groupId>
  181. <artifactId>replacer</artifactId>
  182. </plugin>
  183. <!-- 04-Mar-2019, tatu: Add rudimentary JDK9+ module info. To build with JDK 8
  184. will have to use `moduleInfoFile` as anything else requires JDK 9+
  185. -->
  186. <plugin>
  187. <groupId>org.moditect</groupId>
  188. <artifactId>moditect-maven-plugin</artifactId>
  189. </plugin>
  190. <!-- 03-Nov-2020, tatu: Add LICENSE from main level -->
  191. <plugin>
  192. <groupId>org.codehaus.mojo</groupId>
  193. <artifactId>build-helper-maven-plugin</artifactId>
  194. </plugin>
  195. <plugin>
  196. <groupId>de.jjohannes</groupId>
  197. <artifactId>gradle-module-metadata-maven-plugin</artifactId>
  198. </plugin>
  199. </plugins>
  200. </build>
  201. <profiles>
  202. <profile>
  203. <id>release</id>
  204. <properties>
  205. <maven.test.skip>true</maven.test.skip>
  206. <skipTests>true</skipTests>
  207. </properties>
  208. </profile>
  209. <!-- 07-Dec-2021, tatu: This is a huge mess, sorry folks... -->
  210. <profile>
  211. <id>java14</id>
  212. <activation>
  213. <jdk>14</jdk>
  214. </activation>
  215. <build>
  216. <plugins>
  217. <plugin>
  218. <groupId>org.codehaus.mojo</groupId>
  219. <artifactId>build-helper-maven-plugin</artifactId>
  220. <executions>
  221. <execution>
  222. <id>add-test-source</id>
  223. <phase>generate-test-sources</phase>
  224. <goals>
  225. <goal>add-test-source</goal>
  226. </goals>
  227. <configuration>
  228. <sources>
  229. <source>src/test-jdk14/java</source>
  230. </sources>
  231. </configuration>
  232. </execution>
  233. </executions>
  234. </plugin>
  235. <plugin>
  236. <groupId>org.apache.maven.plugins</groupId>
  237. <artifactId>maven-compiler-plugin</artifactId>
  238. <inherited>true</inherited>
  239. <configuration>
  240. <optimize>true</optimize>
  241. <!-- Enable Java 14+ for all sources so that Intellij picks the right language level -->
  242. <source>14</source>
  243. <release>14</release>
  244. <compilerArgs>
  245. <arg>-parameters</arg>
  246. <arg>--enable-preview</arg>
  247. </compilerArgs>
  248. <fork>true</fork>
  249. <useIncrementalCompilation>true</useIncrementalCompilation>
  250. </configuration>
  251. </plugin>
  252. <plugin>
  253. <groupId>org.apache.maven.plugins</groupId>
  254. <artifactId>maven-surefire-plugin</artifactId>
  255. <configuration>
  256. <argLine>--enable-preview</argLine>
  257. </configuration>
  258. </plugin>
  259. </plugins>
  260. </build>
  261. </profile>
  262. <profile>
  263. <!-- And different set up for JDK 17 -->
  264. <id>java17</id>
  265. <activation>
  266. <jdk>17</jdk>
  267. </activation>
  268. <build>
  269. <plugins>
  270. <plugin>
  271. <groupId>org.codehaus.mojo</groupId>
  272. <artifactId>build-helper-maven-plugin</artifactId>
  273. <executions>
  274. <execution>
  275. <id>add-test-source</id>
  276. <phase>generate-test-sources</phase>
  277. <goals>
  278. <goal>add-test-source</goal>
  279. </goals>
  280. <configuration>
  281. <sources>
  282. <source>src/test-jdk14/java</source>
  283. </sources>
  284. </configuration>
  285. </execution>
  286. </executions>
  287. </plugin>
  288. <plugin>
  289. <groupId>org.apache.maven.plugins</groupId>
  290. <artifactId>maven-compiler-plugin</artifactId>
  291. <inherited>true</inherited>
  292. <configuration>
  293. <optimize>true</optimize>
  294. <!-- Enable Java 17 for all sources so that Intellij picks the right language level -->
  295. <source>17</source>
  296. <release>17</release>
  297. <compilerArgs>
  298. <arg>-parameters</arg>
  299. <arg>--add-opens=java.base/java.lang=ALL-UNNAMED</arg>
  300. <arg>--add-opens=java.base/java.util=ALL-UNNAMED</arg>
  301. </compilerArgs>
  302. </configuration>
  303. </plugin>
  304. <plugin>
  305. <groupId>org.apache.maven.plugins</groupId>
  306. <artifactId>maven-surefire-plugin</artifactId>
  307. <configuration>
  308. <argLine>--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED</argLine>
  309. </configuration>
  310. </plugin>
  311. </plugins>
  312. </build>
  313. </profile>
  314. <profile>
  315. <id>errorprone</id>
  316. <build>
  317. <plugins>
  318. <plugin>
  319. <groupId>org.apache.maven.plugins</groupId>
  320. <artifactId>maven-compiler-plugin</artifactId>
  321. <configuration>
  322. <compilerArgs>
  323. <arg>-XDcompilePolicy=simple</arg>
  324. <arg>
  325. -Xplugin:ErrorProne
  326. <!--
  327. Disable all checks in test code. Bugs in tests can hide runtime failures,
  328. however these can be enabled later on. Many issues may require sub-optional
  329. code to reproduce failures.
  330. -->
  331. -XepExcludedPaths:.*/src/test/java/.*
  332. <!-- ############### -->
  333. <!-- UPGRADED CHECKS -->
  334. <!-- ############### -->
  335. <!-- Boxed primitive equality checks can be dangerous when presented with unexpected inputs -->
  336. -Xep:BoxedPrimitiveEquality:ERROR
  337. <!-- ############### -->
  338. <!-- DISABLED CHECKS -->
  339. <!-- ############### -->
  340. <!-- UnusedVariable is great at catching mistakes quickly, but
  341. requires a few suppressions to avoid noise. Deferring to avoid noise
  342. with the introduction of ErrorProne. -->
  343. -Xep:UnusedVariable:OFF
  344. <!--
  345. Disabled to avoid potential API changes. It's not clear if custom JsonNode types
  346. exist, and if any do implement equals without hashCode, it's likely they cause bugs.
  347. I plan to try fixing this separately.
  348. -->
  349. -Xep:EqualsHashCode:OFF
  350. <!-- Style: javadoc tag validation -->
  351. -Xep:MissingSummary:OFF
  352. -Xep:InvalidInlineTag:OFF
  353. -Xep:EmptyBlockTag:OFF
  354. -Xep:AlmostJavadoc:OFF
  355. -Xep:InvalidLink:OFF
  356. <!-- Style: low reward for enabling. -->
  357. -Xep:UnnecessaryParentheses:OFF
  358. <!-- Style: low signal -->
  359. -Xep:InconsistentCapitalization:OFF
  360. <!-- Style: requires specific comments when switch branches neither break nor return -->
  361. -Xep:FallThrough:OFF
  362. <!-- Style: disable noisy check for importing common names from nested classes -->
  363. -Xep:BadImport:OFF
  364. <!-- Style: requires a default case when not all cases are handled -->
  365. -Xep:MissingCasesInEnumSwitch:OFF
  366. <!-- Style: avoid clashes with java.lang. Possibly worth enabling, but this can be done later -->
  367. -Xep:JavaLangClash:OFF
  368. <!-- These can likely be updated from protected to private, but it's relatively low signal -->
  369. -Xep:ProtectedMembersInFinalClass:OFF
  370. <!-- These can likely be updated from public to protected, but it's relatively low signal -->
  371. -Xep:PublicConstructorForAbstractClass:OFF
  372. <!-- jackson-databind doesn't have a logger, in many cases there's no way to pre-validate inputs -->
  373. -Xep:EmptyCatch:OFF
  374. -Xep:EqualsGetClass:OFF
  375. <!-- Noisy check that's largely unnecessary unless the result is mutated.
  376. Returning only immutable collections requires additional overhead and
  377. impact must be carefully considered. -->
  378. -Xep:MixedMutabilityReturnType:OFF
  379. <!-- Noisy in jackson and libraries which must interact with generics -->
  380. -Xep:TypeParameterUnusedInFormals:OFF
  381. <!-- Check is noisy around code that's meant to handle types that are considered obsolete -->
  382. -Xep:JdkObsolete:OFF
  383. <!-- Avoid noise from tests -->
  384. -Xep:JUnit3FloatingPointComparisonWithoutDelta:OFF
  385. <!-- Disable the StringSplitter check because it requires a guava dependency -->
  386. -Xep:StringSplitter:OFF
  387. <!-- Disable checks which require custom annotations -->
  388. -Xep:AnnotateFormatMethod:OFF
  389. -Xep:GuardedBy:OFF
  390. <!-- This check is generally high signal, however it is noisy in
  391. low level projects which implement caches and interning. -->
  392. -Xep:ReferenceEquality:OFF
  393. </arg>
  394. </compilerArgs>
  395. <annotationProcessorPaths>
  396. <path>
  397. <groupId>com.google.errorprone</groupId>
  398. <artifactId>error_prone_core</artifactId>
  399. <version>2.4.0</version>
  400. </path>
  401. </annotationProcessorPaths>
  402. <fork>true</fork>
  403. <useIncrementalCompilation>true</useIncrementalCompilation>
  404. </configuration>
  405. </plugin>
  406. </plugins>
  407. </build>
  408. </profile>
  409. </profiles>
  410. </project>