byte-buddy-parent-1.11.22.pom 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953
  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. <modelVersion>4.0.0</modelVersion>
  4. <groupId>net.bytebuddy</groupId>
  5. <artifactId>byte-buddy-parent</artifactId>
  6. <version>1.11.22</version>
  7. <packaging>pom</packaging>
  8. <inceptionYear>2014</inceptionYear>
  9. <name>Byte Buddy (parent)</name>
  10. <description>
  11. Byte Buddy is a Java library for creating Java classes at run time.
  12. The parent artifact contains configuration information that concern all modules.
  13. </description>
  14. <url>https://bytebuddy.net</url>
  15. <!--
  16. There are several build profiles available:
  17. - extras: Creates additional artifacts containing source files and javadoc. (activated on release)
  18. - gpg: Sign all artifacts using gpg. (activated on release)
  19. - checks: Applies style checks to the source files. (activated by default, activated on release)
  20. - integration: Runs additional unit tests and executes static code analysis (activated on CI server)
  21. - android: Builds an Android test application. An Android SDK is required for doing so. (excluded from release)
  22. - native-compile: Compiles the native extensions required by Byte Buddy agent.
  23. It is also possible to build Byte Buddy against a specific byte code level. By default, Byte Buddy is Java 5 compatible
  24. but requires Java 6 to build and to run tests: By activating a profile javaX where X is a specific version number,
  25. tests and source are compiled to a differing byte code level.
  26. Additionally, the following reports are available via Maven:
  27. - jacoco:prepare-agent verify jacoco:report - Computes coverage for test suite (all modules)
  28. - org.pitest:pitest-maven:mutationCoverage - Runs mutation tests (all modules)
  29. - spotbugs:spotbugs spotbugs:gui - Runs spotbugs and shows a report in a graphical interface (module specific)
  30. - com.github.ferstl:jitwatch-jarscan-maven-plugin:scan - Finds all methods above HotSpot's inlining threshold
  31. - clirr:check - Checks for binary changes in the API
  32. -->
  33. <modules>
  34. <module>byte-buddy</module>
  35. <module>byte-buddy-dep</module>
  36. <module>byte-buddy-benchmark</module>
  37. <module>byte-buddy-agent</module>
  38. <module>byte-buddy-android</module>
  39. <module>byte-buddy-android-test</module>
  40. <module>byte-buddy-maven-plugin</module>
  41. <module>byte-buddy-gradle-plugin</module>
  42. </modules>
  43. <properties>
  44. <copyright.holder>Rafael Winterhalter</copyright.holder>
  45. <bytebuddy.extras>false</bytebuddy.extras>
  46. <bytebuddy.integration>false</bytebuddy.integration>
  47. <bytebuddy.experimental>false</bytebuddy.experimental>
  48. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  49. <sourcecode.main.version>1.5</sourcecode.main.version>
  50. <sourcecode.test.version>1.6</sourcecode.test.version>
  51. <bytecode.main.version>1.5</bytecode.main.version>
  52. <bytecode.test.version>1.6</bytecode.test.version>
  53. <pitest.target>net.bytebuddy</pitest.target>
  54. <asm.url>https://asm.ow2.io</asm.url>
  55. <nexus.url>https://oss.sonatype.org</nexus.url>
  56. <version.asm>9.2</version.asm>
  57. <jna.version>5.8.0</jna.version>
  58. <version.junit>4.13.2</version.junit>
  59. <version.mockito>2.23.0</version.mockito>
  60. <version.plugin.clean>3.0.0</version.plugin.clean>
  61. <version.plugin.bundle>3.5.0</version.plugin.bundle>
  62. <version.plugin.compiler>3.8.0</version.plugin.compiler>
  63. <version.plugin.install>2.5.2</version.plugin.install>
  64. <version.plugin.deploy>2.8.2</version.plugin.deploy>
  65. <version.plugin.staging>1.6.8</version.plugin.staging>
  66. <version.plugin.javadoc>3.3.1</version.plugin.javadoc>
  67. <version.plugin.source>3.0.1</version.plugin.source>
  68. <version.plugin.shade>3.2.4</version.plugin.shade>
  69. <version.plugin.gpg>1.6</version.plugin.gpg>
  70. <version.plugin.jxr>2.5</version.plugin.jxr>
  71. <version.plugin.buildhelp>1.12</version.plugin.buildhelp>
  72. <version.plugin.jar>3.0.2</version.plugin.jar>
  73. <version.plugin.site>3.8.2</version.plugin.site>
  74. <version.plugin.exec>1.6.0</version.plugin.exec>
  75. <version.plugin.plugin>3.6.0</version.plugin.plugin>
  76. <version.plugin.release>2.5.3</version.plugin.release>
  77. <version.plugin.resources>3.0.2</version.plugin.resources>
  78. <version.plugin.surefire>3.0.0-M5</version.plugin.surefire>
  79. <version.plugin.pitest>1.2.0</version.plugin.pitest>
  80. <version.plugin.animal-sniffer>1.16</version.plugin.animal-sniffer>
  81. <version.plugin.enforcer>1.4.1</version.plugin.enforcer>
  82. <version.plugin.jacoco>0.8.6</version.plugin.jacoco>
  83. <version.plugin.coveralls>4.3.0</version.plugin.coveralls>
  84. <version.plugin.checkstyle>2.17</version.plugin.checkstyle>
  85. <version.plugin.jitwatch>1.0.1</version.plugin.jitwatch>
  86. <version.plugin.clirr>2.8</version.plugin.clirr>
  87. <version.plugin.spotbugs>4.2.0</version.plugin.spotbugs>
  88. <version.plugin.modulemaker>1.7</version.plugin.modulemaker>
  89. <version.plugin.license>3.0</version.plugin.license>
  90. <version.plugin.japicmp>0.15.3</version.plugin.japicmp>
  91. <version.android.sdk>4.1.1.4</version.android.sdk>
  92. <version.utility.findbugs>3.0.1</version.utility.findbugs>
  93. <spotbugs.skip>false</spotbugs.skip>
  94. <jacoco.skip>false</jacoco.skip>
  95. <repository.url>git@github.com:raphw/byte-buddy.git</repository.url>
  96. </properties>
  97. <licenses>
  98. <license>
  99. <name>Apache License, Version 2.0</name>
  100. <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
  101. <distribution>repo</distribution>
  102. <comments>A business-friendly OSS license</comments>
  103. </license>
  104. </licenses>
  105. <developers>
  106. <developer>
  107. <id>raphw</id>
  108. <name>Rafael Winterhalter</name>
  109. <email>rafael.wth@gmail.com</email>
  110. <url>https://rafael.codes</url>
  111. <roles>
  112. <role>developer</role>
  113. </roles>
  114. <timezone>+1</timezone>
  115. </developer>
  116. </developers>
  117. <issueManagement>
  118. <system>github.com</system>
  119. <url>https://github.com/raphw/byte-buddy/issues</url>
  120. </issueManagement>
  121. <scm>
  122. <connection>scm:git:${repository.url}</connection>
  123. <developerConnection>scm:git:${repository.url}</developerConnection>
  124. <url>${repository.url}</url>
  125. <tag>byte-buddy-1.11.22</tag>
  126. </scm>
  127. <dependencies>
  128. <!-- Allows the suppression of spotbugs false-positives by annotations without adding an actual dependency. -->
  129. <dependency>
  130. <groupId>com.google.code.findbugs</groupId>
  131. <artifactId>findbugs-annotations</artifactId>
  132. <version>${version.utility.findbugs}</version>
  133. <scope>provided</scope>
  134. </dependency>
  135. </dependencies>
  136. <build>
  137. <plugins>
  138. <!-- Define release properties. -->
  139. <plugin>
  140. <groupId>org.apache.maven.plugins</groupId>
  141. <artifactId>maven-release-plugin</artifactId>
  142. <version>${version.plugin.release}</version>
  143. <configuration>
  144. <useReleaseProfile>false</useReleaseProfile>
  145. <releaseProfiles>extras,gpg</releaseProfiles>
  146. <autoVersionSubmodules>true</autoVersionSubmodules>
  147. <tagNameFormat>byte-buddy-@{project.version}</tagNameFormat>
  148. </configuration>
  149. </plugin>
  150. <!-- Enable mutation testing. -->
  151. <plugin>
  152. <groupId>org.pitest</groupId>
  153. <artifactId>pitest-maven</artifactId>
  154. <version>${version.plugin.pitest}</version>
  155. <configuration>
  156. <targetClasses>
  157. <param>${pitest.target}.*</param>
  158. </targetClasses>
  159. <targetTests>
  160. <param>${pitest.target}.*</param>
  161. </targetTests>
  162. </configuration>
  163. </plugin>
  164. <!-- Configure Jacoco support for evaluating test case coverage. -->
  165. <plugin>
  166. <groupId>org.jacoco</groupId>
  167. <artifactId>jacoco-maven-plugin</artifactId>
  168. <version>${version.plugin.jacoco}</version>
  169. <configuration>
  170. <skip>${jacoco.skip}</skip>
  171. <includes>
  172. <include>net/bytebuddy/**</include>
  173. </includes>
  174. <excludes>
  175. <exclude>net/bytebuddy/benchmark/generated/*</exclude>
  176. <!-- Avoid adding synthetic members to test classes as test assert class members. -->
  177. <exclude>*Test*</exclude>
  178. <exclude>*test*</exclude>
  179. </excludes>
  180. </configuration>
  181. </plugin>
  182. <!-- Generate coveralls reports from CI server. -->
  183. <plugin>
  184. <groupId>org.eluder.coveralls</groupId>
  185. <artifactId>coveralls-maven-plugin</artifactId>
  186. <version>${version.plugin.coveralls}</version>
  187. <configuration>
  188. <sourceDirectories>
  189. <sourceDirectory>${project.basedir}/byte-buddy-dep/src/precompiled/java</sourceDirectory>
  190. </sourceDirectories>
  191. </configuration>
  192. </plugin>
  193. <!-- Also allow for manual spotbugs execution. Note that the generated warnings do not always apply for Byte Buddy's use case. -->
  194. <plugin>
  195. <groupId>com.github.spotbugs</groupId>
  196. <artifactId>spotbugs-maven-plugin</artifactId>
  197. <version>${version.plugin.spotbugs}</version>
  198. <configuration>
  199. <skip>${spotbugs.skip}</skip>
  200. <effort>Max</effort>
  201. <threshold>Low</threshold>
  202. <xmlOutput>true</xmlOutput>
  203. <failOnError>false</failOnError>
  204. <spotbugsXmlOutputDirectory>${project.build.directory}/spotbugs</spotbugsXmlOutputDirectory>
  205. </configuration>
  206. </plugin>
  207. <!-- Enable scanning for methods above the inlining threshold (JDK 7+) -->
  208. <plugin>
  209. <groupId>com.github.ferstl</groupId>
  210. <artifactId>jitwatch-jarscan-maven-plugin</artifactId>
  211. <version>${version.plugin.jitwatch}</version>
  212. </plugin>
  213. <!-- Enable scanning for binary changes between releases -->
  214. <plugin>
  215. <groupId>org.codehaus.mojo</groupId>
  216. <artifactId>clirr-maven-plugin</artifactId>
  217. <version>${version.plugin.clirr}</version>
  218. </plugin>
  219. <!-- Add license headers to all files. -->
  220. <plugin>
  221. <groupId>com.mycila</groupId>
  222. <artifactId>license-maven-plugin</artifactId>
  223. <version>${version.plugin.license}</version>
  224. <inherited>false</inherited>
  225. <configuration>
  226. <header>${project.basedir}/NOTICE</header>
  227. <aggregate>true</aggregate>
  228. <failIfMissing>true</failIfMissing>
  229. <encoding>${project.build.sourceEncoding}</encoding>
  230. <properties>
  231. <current.year>Present</current.year>
  232. <copyright.holder>${copyright.holder}</copyright.holder>
  233. </properties>
  234. <includes>
  235. <include>**/main/java/**/*.java</include>
  236. <include>**/precompiled/java/**/*.java</include>
  237. <include>**/main/c/**/*.c</include>
  238. </includes>
  239. <strictCheck>true</strictCheck>
  240. <mapping>
  241. <java>SLASHSTAR_STYLE</java>
  242. </mapping>
  243. </configuration>
  244. <executions>
  245. <execution>
  246. <phase>package</phase>
  247. <goals>
  248. <goal>format</goal>
  249. </goals>
  250. </execution>
  251. </executions>
  252. </plugin>
  253. <!-- Setup plugin for deployment to Maven Central. -->
  254. <plugin>
  255. <groupId>org.sonatype.plugins</groupId>
  256. <artifactId>nexus-staging-maven-plugin</artifactId>
  257. <version>${version.plugin.staging}</version>
  258. <extensions>true</extensions>
  259. <configuration>
  260. <serverId>central</serverId>
  261. <nexusUrl>${nexus.url}</nexusUrl>
  262. <autoReleaseAfterClose>true</autoReleaseAfterClose>
  263. </configuration>
  264. </plugin>
  265. </plugins>
  266. <pluginManagement>
  267. <plugins>
  268. <plugin>
  269. <groupId>org.apache.maven.plugins</groupId>
  270. <artifactId>maven-clean-plugin</artifactId>
  271. <version>${version.plugin.clean}</version>
  272. </plugin>
  273. <plugin>
  274. <groupId>org.apache.maven.plugins</groupId>
  275. <artifactId>maven-jar-plugin</artifactId>
  276. <version>${version.plugin.jar}</version>
  277. </plugin>
  278. <plugin>
  279. <groupId>org.apache.maven.plugins</groupId>
  280. <artifactId>maven-resources-plugin</artifactId>
  281. <version>${version.plugin.resources}</version>
  282. </plugin>
  283. <plugin>
  284. <groupId>org.apache.maven.plugins</groupId>
  285. <artifactId>maven-install-plugin</artifactId>
  286. <version>${version.plugin.install}</version>
  287. </plugin>
  288. <plugin>
  289. <groupId>org.apache.maven.plugins</groupId>
  290. <artifactId>maven-surefire-plugin</artifactId>
  291. <version>${version.plugin.surefire}</version>
  292. <configuration>
  293. <systemPropertyVariables>
  294. <net.bytebuddy.experimental>${bytebuddy.experimental}</net.bytebuddy.experimental>
  295. <net.bytebuddy.test.integration>${bytebuddy.integration}</net.bytebuddy.test.integration>
  296. </systemPropertyVariables>
  297. </configuration>
  298. </plugin>
  299. <plugin>
  300. <groupId>org.apache.maven.plugins</groupId>
  301. <artifactId>maven-deploy-plugin</artifactId>
  302. <version>${version.plugin.deploy}</version>
  303. <configuration>
  304. <updateReleaseInfo>true</updateReleaseInfo>
  305. </configuration>
  306. </plugin>
  307. <plugin>
  308. <groupId>org.apache.maven.plugins</groupId>
  309. <artifactId>maven-site-plugin</artifactId>
  310. <version>${version.plugin.site}</version>
  311. </plugin>
  312. <plugin>
  313. <groupId>org.apache.maven.plugins</groupId>
  314. <artifactId>maven-compiler-plugin</artifactId>
  315. <version>${version.plugin.compiler}</version>
  316. <inherited>true</inherited>
  317. <configuration>
  318. <source>${sourcecode.main.version}</source>
  319. <target>${bytecode.main.version}</target>
  320. <testSource>${sourcecode.test.version}</testSource>
  321. <testTarget>${bytecode.test.version}</testTarget>
  322. <encoding>${project.build.sourceEncoding}</encoding>
  323. <showWarnings>true</showWarnings>
  324. <showDeprecation>true</showDeprecation>
  325. <compilerArgument>-Xlint:all,-options,-processing</compilerArgument>
  326. </configuration>
  327. </plugin>
  328. <plugin>
  329. <groupId>org.apache.maven.plugins</groupId>
  330. <artifactId>maven-plugin-plugin</artifactId>
  331. <version>${version.plugin.plugin}</version>
  332. <dependencies>
  333. <dependency>
  334. <groupId>org.ow2.asm</groupId>
  335. <artifactId>asm</artifactId>
  336. <version>${version.asm}</version>
  337. </dependency>
  338. <dependency>
  339. <groupId>org.ow2.asm</groupId>
  340. <artifactId>asm-commons</artifactId>
  341. <version>${version.asm}</version>
  342. </dependency>
  343. </dependencies>
  344. </plugin>
  345. </plugins>
  346. </pluginManagement>
  347. </build>
  348. <!-- Define explicit version to overcome problem with generated reports. -->
  349. <reporting>
  350. <plugins>
  351. <plugin>
  352. <groupId>org.apache.maven.plugins</groupId>
  353. <artifactId>maven-jxr-plugin</artifactId>
  354. <version>${version.plugin.jxr}</version>
  355. </plugin>
  356. </plugins>
  357. </reporting>
  358. <distributionManagement>
  359. <snapshotRepository>
  360. <id>central</id>
  361. <url>${nexus.url}/content/repositories/snapshots</url>
  362. </snapshotRepository>
  363. <repository>
  364. <id>central</id>
  365. <url>${nexus.url}/service/local/staging/deploy/maven2</url>
  366. </repository>
  367. </distributionManagement>
  368. <profiles>
  369. <!-- Runs the build with compatibility for Java 6 JVMs. -->
  370. <profile>
  371. <id>java6-compatibility</id>
  372. <activation>
  373. <activeByDefault>false</activeByDefault>
  374. <jdk>1.6</jdk>
  375. </activation>
  376. <properties>
  377. <version.asm.deprecated>7.1</version.asm.deprecated>
  378. <version.plugin.bundle>2.5.4</version.plugin.bundle>
  379. <version.plugin.checkstyle>2.15</version.plugin.checkstyle>
  380. <version.plugin.compiler>3.6.2</version.plugin.compiler>
  381. <version.plugin.spotbugs>3.1.0-RC8</version.plugin.spotbugs>
  382. <version.plugin.exec>1.5.0</version.plugin.exec>
  383. <version.plugin.plugin>3.5.2</version.plugin.plugin>
  384. <version.plugin.shade>3.1.1</version.plugin.shade>
  385. <version.plugin.surefire>2.22.1</version.plugin.surefire>
  386. <version.plugin.javadoc>2.10.4</version.plugin.javadoc>
  387. <spotbugs.skip>true</spotbugs.skip>
  388. </properties>
  389. <modules>
  390. <module>byte-buddy</module>
  391. <module>byte-buddy-dep</module>
  392. <module>byte-buddy-benchmark</module>
  393. <module>byte-buddy-agent</module>
  394. <module>byte-buddy-android</module>
  395. <module>byte-buddy-maven-plugin</module>
  396. <module>byte-buddy-gradle-plugin</module>
  397. </modules>
  398. <build>
  399. <pluginManagement>
  400. <plugins>
  401. <plugin>
  402. <groupId>org.apache.maven.plugins</groupId>
  403. <artifactId>maven-plugin-plugin</artifactId>
  404. <version>${version.plugin.plugin}</version>
  405. <dependencies>
  406. <dependency>
  407. <groupId>org.ow2.asm</groupId>
  408. <artifactId>asm</artifactId>
  409. <version>${version.asm.deprecated}</version>
  410. </dependency>
  411. <dependency>
  412. <groupId>org.ow2.asm</groupId>
  413. <artifactId>asm-commons</artifactId>
  414. <version>${version.asm.deprecated}</version>
  415. </dependency>
  416. <dependency>
  417. <groupId>org.ow2.asm</groupId>
  418. <artifactId>asm-deprecated</artifactId>
  419. <version>${version.asm.deprecated}</version>
  420. </dependency>
  421. </dependencies>
  422. </plugin>
  423. </plugins>
  424. </pluginManagement>
  425. </build>
  426. </profile>
  427. <!-- Runs the build with compatibility for Java 7 JVMs. -->
  428. <profile>
  429. <id>java7-compatibility</id>
  430. <activation>
  431. <activeByDefault>false</activeByDefault>
  432. <jdk>1.7</jdk>
  433. </activation>
  434. <properties>
  435. <version.plugin.spotbugs>3.1.0-RC8</version.plugin.spotbugs>
  436. <version.plugin.javadoc>3.2.0</version.plugin.javadoc>
  437. <version.plugin.japicmp>0.13.1</version.plugin.japicmp>
  438. <spotbugs.skip>true</spotbugs.skip>
  439. </properties>
  440. </profile>
  441. <!-- Runs the build with compatibility for Java 9 JVMs. -->
  442. <profile>
  443. <id>java9-compatibility</id>
  444. <activation>
  445. <activeByDefault>false</activeByDefault>
  446. <jdk>9</jdk>
  447. </activation>
  448. <properties>
  449. <sourcecode.main.version>1.6</sourcecode.main.version>
  450. <sourcecode.test.version>1.6</sourcecode.test.version>
  451. <bytecode.main.version>1.6</bytecode.main.version>
  452. <bytecode.test.version>1.6</bytecode.test.version>
  453. </properties>
  454. </profile>
  455. <!-- Runs the build with compatibility for Java 10 JVMs. -->
  456. <profile>
  457. <id>java10-compatibility</id>
  458. <activation>
  459. <activeByDefault>false</activeByDefault>
  460. <jdk>10</jdk>
  461. </activation>
  462. <properties>
  463. <sourcecode.main.version>1.7</sourcecode.main.version>
  464. <sourcecode.test.version>1.7</sourcecode.test.version>
  465. <bytecode.main.version>1.7</bytecode.main.version>
  466. <bytecode.test.version>1.7</bytecode.test.version>
  467. </properties>
  468. </profile>
  469. <!-- Runs the build with compatibility for Java 11 JVMs. -->
  470. <profile>
  471. <id>java11-compatibility</id>
  472. <activation>
  473. <activeByDefault>false</activeByDefault>
  474. <jdk>11</jdk>
  475. </activation>
  476. <properties>
  477. <sourcecode.main.version>1.7</sourcecode.main.version>
  478. <sourcecode.test.version>1.7</sourcecode.test.version>
  479. <bytecode.main.version>1.7</bytecode.main.version>
  480. <bytecode.test.version>1.7</bytecode.test.version>
  481. </properties>
  482. </profile>
  483. <!-- Runs the build with compatibility for Java 12 JVMs. -->
  484. <profile>
  485. <id>java12-compatibility</id>
  486. <activation>
  487. <activeByDefault>false</activeByDefault>
  488. <jdk>12</jdk>
  489. </activation>
  490. <properties>
  491. <sourcecode.main.version>1.7</sourcecode.main.version>
  492. <sourcecode.test.version>1.7</sourcecode.test.version>
  493. <bytecode.main.version>1.7</bytecode.main.version>
  494. <bytecode.test.version>1.7</bytecode.test.version>
  495. </properties>
  496. </profile>
  497. <!-- Runs the build with compatibility for Java 13 JVMs. -->
  498. <profile>
  499. <id>java13-compatibility</id>
  500. <activation>
  501. <activeByDefault>false</activeByDefault>
  502. <jdk>13</jdk>
  503. </activation>
  504. <properties>
  505. <sourcecode.main.version>1.7</sourcecode.main.version>
  506. <sourcecode.test.version>1.7</sourcecode.test.version>
  507. <bytecode.main.version>1.7</bytecode.main.version>
  508. <bytecode.test.version>1.7</bytecode.test.version>
  509. </properties>
  510. </profile>
  511. <!-- Runs the build with compatibility for Java 14 JVMs. -->
  512. <profile>
  513. <id>java14-compatibility</id>
  514. <activation>
  515. <activeByDefault>false</activeByDefault>
  516. <jdk>14</jdk>
  517. </activation>
  518. <properties>
  519. <sourcecode.main.version>1.7</sourcecode.main.version>
  520. <sourcecode.test.version>1.7</sourcecode.test.version>
  521. <bytecode.main.version>1.7</bytecode.main.version>
  522. <bytecode.test.version>1.7</bytecode.test.version>
  523. </properties>
  524. </profile>
  525. <!-- Runs the build with compatibility for Java 15 JVMs. -->
  526. <profile>
  527. <id>java15-compatibility</id>
  528. <activation>
  529. <activeByDefault>false</activeByDefault>
  530. <jdk>15</jdk>
  531. </activation>
  532. <properties>
  533. <sourcecode.main.version>8</sourcecode.main.version>
  534. <sourcecode.test.version>8</sourcecode.test.version>
  535. <bytecode.main.version>8</bytecode.main.version>
  536. <bytecode.test.version>8</bytecode.test.version>
  537. </properties>
  538. </profile>
  539. <!-- Runs the build with compatibility for Java 16 JVMs. -->
  540. <profile>
  541. <id>java16-compatibility</id>
  542. <activation>
  543. <activeByDefault>false</activeByDefault>
  544. <jdk>16</jdk>
  545. </activation>
  546. <properties>
  547. <sourcecode.main.version>8</sourcecode.main.version>
  548. <sourcecode.test.version>8</sourcecode.test.version>
  549. <bytecode.main.version>8</bytecode.main.version>
  550. <bytecode.test.version>8</bytecode.test.version>
  551. <jacoco.skip>true</jacoco.skip>
  552. </properties>
  553. </profile>
  554. <!-- Runs the build with compatibility for Java 15 JVMs. -->
  555. <profile>
  556. <id>java17-compatibility</id>
  557. <activation>
  558. <activeByDefault>false</activeByDefault>
  559. <jdk>17</jdk>
  560. </activation>
  561. <properties>
  562. <sourcecode.main.version>8</sourcecode.main.version>
  563. <sourcecode.test.version>8</sourcecode.test.version>
  564. <bytecode.main.version>8</bytecode.main.version>
  565. <bytecode.test.version>8</bytecode.test.version>
  566. <jacoco.skip>true</jacoco.skip>
  567. <bytebuddy.experimental>true</bytebuddy.experimental>
  568. </properties>
  569. </profile>
  570. <!-- Runs the build with compatibility for Java 18 JVMs. -->
  571. <profile>
  572. <id>java18-compatibility</id>
  573. <activation>
  574. <activeByDefault>false</activeByDefault>
  575. <jdk>18</jdk>
  576. </activation>
  577. <properties>
  578. <sourcecode.main.version>8</sourcecode.main.version>
  579. <sourcecode.test.version>8</sourcecode.test.version>
  580. <bytecode.main.version>8</bytecode.main.version>
  581. <bytecode.test.version>8</bytecode.test.version>
  582. <jacoco.skip>true</jacoco.skip>
  583. <bytebuddy.experimental>true</bytebuddy.experimental>
  584. </properties>
  585. </profile>
  586. <!-- Builds using a byte code target for Java 6. -->
  587. <profile>
  588. <id>java6</id>
  589. <activation>
  590. <activeByDefault>false</activeByDefault>
  591. </activation>
  592. <properties>
  593. <bytecode.main.version>1.6</bytecode.main.version>
  594. </properties>
  595. </profile>
  596. <!-- Builds using a byte code target for Java 7. -->
  597. <profile>
  598. <id>java7</id>
  599. <activation>
  600. <activeByDefault>false</activeByDefault>
  601. </activation>
  602. <properties>
  603. <bytecode.main.version>1.7</bytecode.main.version>
  604. <bytecode.test.version>1.7</bytecode.test.version>
  605. </properties>
  606. </profile>
  607. <!-- Builds using a byte code target for Java 8. -->
  608. <profile>
  609. <id>java8</id>
  610. <activation>
  611. <activeByDefault>false</activeByDefault>
  612. </activation>
  613. <properties>
  614. <bytecode.main.version>1.8</bytecode.main.version>
  615. <bytecode.test.version>1.8</bytecode.test.version>
  616. </properties>
  617. </profile>
  618. <!-- Builds using a byte code target for Java 9. -->
  619. <profile>
  620. <id>java9</id>
  621. <activation>
  622. <activeByDefault>false</activeByDefault>
  623. </activation>
  624. <properties>
  625. <bytecode.main.version>9</bytecode.main.version>
  626. <bytecode.test.version>9</bytecode.test.version>
  627. </properties>
  628. </profile>
  629. <!-- Builds using a byte code target for Java 10. -->
  630. <profile>
  631. <id>java10</id>
  632. <activation>
  633. <activeByDefault>false</activeByDefault>
  634. </activation>
  635. <properties>
  636. <bytecode.main.version>10</bytecode.main.version>
  637. <bytecode.test.version>10</bytecode.test.version>
  638. <spotbugs.skip>true</spotbugs.skip>
  639. </properties>
  640. </profile>
  641. <!-- Builds using a byte code target for Java 11. -->
  642. <profile>
  643. <id>java11</id>
  644. <activation>
  645. <activeByDefault>false</activeByDefault>
  646. </activation>
  647. <properties>
  648. <bytecode.main.version>11</bytecode.main.version>
  649. <bytecode.test.version>11</bytecode.test.version>
  650. <spotbugs.skip>true</spotbugs.skip>
  651. </properties>
  652. </profile>
  653. <!-- Builds using a byte code target for Java 12. -->
  654. <profile>
  655. <id>java12</id>
  656. <activation>
  657. <activeByDefault>false</activeByDefault>
  658. </activation>
  659. <properties>
  660. <bytecode.main.version>12</bytecode.main.version>
  661. <bytecode.test.version>12</bytecode.test.version>
  662. <spotbugs.skip>true</spotbugs.skip>
  663. </properties>
  664. </profile>
  665. <!-- Builds using a byte code target for Java 13. -->
  666. <profile>
  667. <id>java13</id>
  668. <activation>
  669. <activeByDefault>false</activeByDefault>
  670. </activation>
  671. <properties>
  672. <bytecode.main.version>13</bytecode.main.version>
  673. <bytecode.test.version>13</bytecode.test.version>
  674. <spotbugs.skip>true</spotbugs.skip>
  675. </properties>
  676. </profile>
  677. <!-- Builds using a byte code target for Java 14. -->
  678. <profile>
  679. <id>java14</id>
  680. <activation>
  681. <activeByDefault>false</activeByDefault>
  682. </activation>
  683. <properties>
  684. <bytecode.main.version>14</bytecode.main.version>
  685. <bytecode.test.version>14</bytecode.test.version>
  686. <spotbugs.skip>true</spotbugs.skip>
  687. </properties>
  688. </profile>
  689. <!-- Builds using a byte code target for Java 15. -->
  690. <profile>
  691. <id>java15</id>
  692. <activation>
  693. <activeByDefault>false</activeByDefault>
  694. </activation>
  695. <properties>
  696. <bytecode.main.version>15</bytecode.main.version>
  697. <bytecode.test.version>15</bytecode.test.version>
  698. <spotbugs.skip>true</spotbugs.skip>
  699. </properties>
  700. </profile>
  701. <!-- Builds using a byte code target for Java 16. -->
  702. <profile>
  703. <id>java16</id>
  704. <activation>
  705. <activeByDefault>false</activeByDefault>
  706. </activation>
  707. <properties>
  708. <bytecode.main.version>16</bytecode.main.version>
  709. <bytecode.test.version>16</bytecode.test.version>
  710. <spotbugs.skip>true</spotbugs.skip>
  711. </properties>
  712. </profile>
  713. <!-- Builds using a byte code target for Java 17. -->
  714. <profile>
  715. <id>java17</id>
  716. <activation>
  717. <activeByDefault>false</activeByDefault>
  718. </activation>
  719. <properties>
  720. <bytecode.main.version>17</bytecode.main.version>
  721. <bytecode.test.version>17</bytecode.test.version>
  722. <spotbugs.skip>true</spotbugs.skip>
  723. </properties>
  724. </profile>
  725. <!-- Builds using a byte code target for Java 18. -->
  726. <profile>
  727. <id>java18</id>
  728. <activation>
  729. <activeByDefault>false</activeByDefault>
  730. </activation>
  731. <properties>
  732. <bytecode.main.version>18</bytecode.main.version>
  733. <bytecode.test.version>18</bytecode.test.version>
  734. <spotbugs.skip>true</spotbugs.skip>
  735. </properties>
  736. </profile>
  737. <!-- Creates additional artifacts that are required for deployment. -->
  738. <profile>
  739. <id>extras</id>
  740. <activation>
  741. <activeByDefault>false</activeByDefault>
  742. </activation>
  743. <properties>
  744. <bytebuddy.extras>true</bytebuddy.extras>
  745. </properties>
  746. <build>
  747. <plugins>
  748. <!-- Create source code artifact. -->
  749. <plugin>
  750. <groupId>org.apache.maven.plugins</groupId>
  751. <artifactId>maven-source-plugin</artifactId>
  752. <version>${version.plugin.source}</version>
  753. <executions>
  754. <execution>
  755. <goals>
  756. <goal>jar</goal>
  757. </goals>
  758. </execution>
  759. </executions>
  760. </plugin>
  761. <!-- Create javadoc artifact. -->
  762. <plugin>
  763. <groupId>org.apache.maven.plugins</groupId>
  764. <artifactId>maven-javadoc-plugin</artifactId>
  765. <version>${version.plugin.javadoc}</version>
  766. <executions>
  767. <execution>
  768. <goals>
  769. <goal>jar</goal>
  770. </goals>
  771. </execution>
  772. </executions>
  773. <configuration>
  774. <source>${sourcecode.main.version}</source>
  775. <detectJavaApiLink>true</detectJavaApiLink>
  776. <links>
  777. <link>${asm.url}/javadoc</link>
  778. <link>https://javadoc.io/doc/net.java.dev.jna/jna/latest</link>
  779. </links>
  780. </configuration>
  781. </plugin>
  782. </plugins>
  783. </build>
  784. </profile>
  785. <!-- Sign any created artifact. (Requires configuration of gpg on the executing machine.) -->
  786. <profile>
  787. <id>gpg</id>
  788. <activation>
  789. <activeByDefault>false</activeByDefault>
  790. </activation>
  791. <build>
  792. <plugins>
  793. <!-- Sign artifacts. -->
  794. <plugin>
  795. <groupId>org.apache.maven.plugins</groupId>
  796. <artifactId>maven-gpg-plugin</artifactId>
  797. <version>${version.plugin.gpg}</version>
  798. <executions>
  799. <execution>
  800. <phase>verify</phase>
  801. <goals>
  802. <goal>sign</goal>
  803. </goals>
  804. <configuration>
  805. <gpgArguments>
  806. <arg>--pinentry-mode</arg>
  807. <arg>loopback</arg>
  808. </gpgArguments>
  809. </configuration>
  810. </execution>
  811. </executions>
  812. </plugin>
  813. </plugins>
  814. </build>
  815. </profile>
  816. <!-- Basic checks that are not requiring too much runtime. -->
  817. <profile>
  818. <id>checks</id>
  819. <activation>
  820. <activeByDefault>true</activeByDefault>
  821. </activation>
  822. <build>
  823. <plugins>
  824. <!-- Check style on build. -->
  825. <plugin>
  826. <groupId>org.apache.maven.plugins</groupId>
  827. <artifactId>maven-checkstyle-plugin</artifactId>
  828. <version>${version.plugin.checkstyle}</version>
  829. <executions>
  830. <execution>
  831. <phase>validate</phase>
  832. <goals>
  833. <goal>check</goal>
  834. </goals>
  835. <configuration>
  836. <configLocation>checkstyle.xml</configLocation>
  837. <consoleOutput>true</consoleOutput>
  838. <failsOnError>true</failsOnError>
  839. <excludes>**/generated/**/*</excludes>
  840. <includeResources>false</includeResources>
  841. </configuration>
  842. </execution>
  843. </executions>
  844. </plugin>
  845. <!-- Check API compatibility. -->
  846. <plugin>
  847. <groupId>org.codehaus.mojo</groupId>
  848. <artifactId>animal-sniffer-maven-plugin</artifactId>
  849. <version>${version.plugin.animal-sniffer}</version>
  850. <executions>
  851. <execution>
  852. <phase>test</phase>
  853. <goals>
  854. <goal>check</goal>
  855. </goals>
  856. <configuration>
  857. <signature>
  858. <groupId>org.codehaus.mojo.signature</groupId>
  859. <artifactId>java15</artifactId>
  860. <version>1.0</version>
  861. </signature>
  862. </configuration>
  863. </execution>
  864. </executions>
  865. </plugin>
  866. <!-- Make sure that Byte Buddy does never depend on ASM's tree API. -->
  867. <plugin>
  868. <groupId>org.apache.maven.plugins</groupId>
  869. <artifactId>maven-enforcer-plugin</artifactId>
  870. <version>${version.plugin.enforcer}</version>
  871. <executions>
  872. <execution>
  873. <goals>
  874. <goal>enforce</goal>
  875. </goals>
  876. <configuration>
  877. <fail>true</fail>
  878. <rules>
  879. <bannedDependencies>
  880. <includes>
  881. <include>org.ow2.asm:asm-tree</include>
  882. </includes>
  883. </bannedDependencies>
  884. <requireMavenVersion>
  885. <version>[3.2.5,)</version>
  886. </requireMavenVersion>
  887. <requireJavaVersion>
  888. <version>[1.6,)</version>
  889. </requireJavaVersion>
  890. </rules>
  891. </configuration>
  892. </execution>
  893. </executions>
  894. </plugin>
  895. </plugins>
  896. </build>
  897. </profile>
  898. <!-- Integration profile that executes long-running tasks and additional static code analysis. -->
  899. <profile>
  900. <id>integration</id>
  901. <activation>
  902. <activeByDefault>false</activeByDefault>
  903. </activation>
  904. <properties>
  905. <bytebuddy.integration>true</bytebuddy.integration>
  906. </properties>
  907. <build>
  908. <plugins>
  909. <!-- Run spotbugs if not specified differently in a module.-->
  910. <plugin>
  911. <groupId>com.github.spotbugs</groupId>
  912. <artifactId>spotbugs-maven-plugin</artifactId>
  913. <version>${version.plugin.spotbugs}</version>
  914. <executions>
  915. <execution>
  916. <phase>verify</phase>
  917. <goals>
  918. <goal>check</goal>
  919. </goals>
  920. <configuration>
  921. <skip>${spotbugs.skip}</skip>
  922. <effort>Max</effort>
  923. <threshold>Low</threshold>
  924. <xmlOutput>true</xmlOutput>
  925. <failOnError>true</failOnError>
  926. </configuration>
  927. </execution>
  928. </executions>
  929. </plugin>
  930. </plugins>
  931. </build>
  932. </profile>
  933. </profiles>
  934. </project>