byte-buddy-parent-1.12.13.pom 51 KB

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