byte-buddy-parent-1.7.11.pom 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
  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.7.11</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>http://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. It is also possible to build Byte Buddy against a specific byte code level. By default, Byte Buddy is Java 6 compatible:
  23. - java7: Sets the target level to Java 7.
  24. - java8: Sets the target level to Java 8.
  25. Additionally, the following reports are available via Maven:
  26. - jacoco:prepare-agent verify jacoco:report - Computes coverage for test suite (all modules)
  27. - org.pitest:pitest-maven:mutationCoverage - Runs mutation tests (all modules)
  28. - spotbugs:spotbugs spotbugs:gui - Runs spotbugs and shows a report in a graphical interface (module specific)
  29. - com.github.ferstl:jitwatch-jarscan-maven-plugin:scan - Finds all methods above HotSpot's inlining threshold
  30. - clirr:check - Checks for binary changes in the API
  31. -->
  32. <modules>
  33. <module>byte-buddy</module>
  34. <module>byte-buddy-dep</module>
  35. <module>byte-buddy-benchmark</module>
  36. <module>byte-buddy-agent</module>
  37. <module>byte-buddy-android</module>
  38. <module>byte-buddy-maven-plugin</module>
  39. <module>byte-buddy-gradle-plugin</module>
  40. </modules>
  41. <properties>
  42. <bytebuddy.extras>false</bytebuddy.extras>
  43. <bytebuddy.integration>false</bytebuddy.integration>
  44. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  45. <code.level>1.6</code.level>
  46. <pitest.target>net.bytebuddy</pitest.target>
  47. <asm.javadoc>http://asm.ow2.org/asm50/javadoc/user/</asm.javadoc>
  48. <version.asm>6.0</version.asm>
  49. <version.junit>4.12</version.junit>
  50. <version.mockito>2.13.0</version.mockito>
  51. <version.plugin.clean>3.0.0</version.plugin.clean>
  52. <version.plugin.bundle>3.3.0</version.plugin.bundle>
  53. <version.plugin.compiler>3.7.0</version.plugin.compiler>
  54. <version.plugin.install>2.5.2</version.plugin.install>
  55. <version.plugin.deploy>2.8.2</version.plugin.deploy>
  56. <version.plugin.javadoc>2.10.4</version.plugin.javadoc>
  57. <version.plugin.source>3.0.1</version.plugin.source>
  58. <version.plugin.shade>3.1.0</version.plugin.shade>
  59. <version.plugin.gpg>1.6</version.plugin.gpg>
  60. <version.plugin.jxr>2.5</version.plugin.jxr>
  61. <version.plugin.jar>3.0.2</version.plugin.jar>
  62. <version.plugin.plugin>3.5</version.plugin.plugin>
  63. <version.plugin.release>2.5.3</version.plugin.release>
  64. <version.plugin.resources>3.0.2</version.plugin.resources>
  65. <version.plugin.surefire>2.20</version.plugin.surefire>
  66. <version.plugin.pitest>1.2.0</version.plugin.pitest>
  67. <version.plugin.animal-sniffer>1.16</version.plugin.animal-sniffer>
  68. <version.plugin.enforcer>1.4.1</version.plugin.enforcer>
  69. <version.plugin.jacoco>0.7.9</version.plugin.jacoco>
  70. <version.plugin.coveralls>4.1.0</version.plugin.coveralls>
  71. <version.plugin.checkstyle>2.17</version.plugin.checkstyle>
  72. <version.plugin.jitwatch>1.0.1</version.plugin.jitwatch>
  73. <version.plugin.clirr>2.8</version.plugin.clirr>
  74. <version.plugin.spotbugs>3.1.0-RC8</version.plugin.spotbugs>
  75. <version.android.sdk>4.1.1.4</version.android.sdk>
  76. <version.utility.lombok>1.16.20</version.utility.lombok>
  77. <version.utility.findbugs>3.0.1</version.utility.findbugs>
  78. <spotbugs.skip>false</spotbugs.skip>
  79. </properties>
  80. <licenses>
  81. <license>
  82. <name>The Apache Software License, Version 2.0</name>
  83. <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
  84. <distribution>repo</distribution>
  85. <comments>A business-friendly OSS license</comments>
  86. </license>
  87. </licenses>
  88. <developers>
  89. <developer>
  90. <id>raphw</id>
  91. <name>Rafael Winterhalter</name>
  92. <email>rafael.wth@gmail.com</email>
  93. <url>http://rafael.codes</url>
  94. <roles>
  95. <role>developer</role>
  96. </roles>
  97. <timezone>+1</timezone>
  98. </developer>
  99. </developers>
  100. <issueManagement>
  101. <system>github.com</system>
  102. <url>https://github.com/raphw/byte-buddy/issues</url>
  103. </issueManagement>
  104. <scm>
  105. <connection>scm:git:git@github.com:raphw/byte-buddy.git</connection>
  106. <developerConnection>scm:git:git@github.com:raphw/byte-buddy.git</developerConnection>
  107. <url>git@github.com:raphw/byte-buddy.git</url>
  108. <tag>byte-buddy-1.7.11</tag>
  109. </scm>
  110. <dependencies>
  111. <!-- Allows the suppression of spotbugs false-positives by annotations without adding an actual dependency. -->
  112. <dependency>
  113. <groupId>com.google.code.findbugs</groupId>
  114. <artifactId>findbugs-annotations</artifactId>
  115. <version>${version.utility.findbugs}</version>
  116. <scope>provided</scope>
  117. </dependency>
  118. <!-- Allow usage of Lombok annotations. -->
  119. <dependency>
  120. <groupId>org.projectlombok</groupId>
  121. <artifactId>lombok</artifactId>
  122. <version>${version.utility.lombok}</version>
  123. <scope>provided</scope>
  124. </dependency>
  125. </dependencies>
  126. <build>
  127. <plugins>
  128. <!-- Define release properties. -->
  129. <plugin>
  130. <groupId>org.apache.maven.plugins</groupId>
  131. <artifactId>maven-release-plugin</artifactId>
  132. <version>${version.plugin.release}</version>
  133. <configuration>
  134. <useReleaseProfile>false</useReleaseProfile>
  135. <releaseProfiles>extras,gpg</releaseProfiles>
  136. <autoVersionSubmodules>true</autoVersionSubmodules>
  137. <tagNameFormat>byte-buddy-@{project.version}</tagNameFormat>
  138. </configuration>
  139. </plugin>
  140. <!-- Enable mutation testing. -->
  141. <plugin>
  142. <groupId>org.pitest</groupId>
  143. <artifactId>pitest-maven</artifactId>
  144. <version>${version.plugin.pitest}</version>
  145. <configuration>
  146. <targetClasses>
  147. <param>${pitest.target}.*</param>
  148. </targetClasses>
  149. <targetTests>
  150. <param>${pitest.target}.*</param>
  151. </targetTests>
  152. </configuration>
  153. </plugin>
  154. <!-- Configure Jacoco support for evaluating test case coverage. -->
  155. <plugin>
  156. <groupId>org.jacoco</groupId>
  157. <artifactId>jacoco-maven-plugin</artifactId>
  158. <version>${version.plugin.jacoco}</version>
  159. <configuration>
  160. <includes>
  161. <include>net/bytebuddy/**</include>
  162. </includes>
  163. <excludes>
  164. <exclude>net/bytebuddy/benchmark/generated/*</exclude>
  165. <!-- Avoid adding synthetic members to test classes as test assert class members. -->
  166. <exclude>*Test*</exclude>
  167. <exclude>*test*</exclude>
  168. </excludes>
  169. </configuration>
  170. </plugin>
  171. <!-- Generate coveralls reports from CI server. -->
  172. <plugin>
  173. <groupId>org.eluder.coveralls</groupId>
  174. <artifactId>coveralls-maven-plugin</artifactId>
  175. <version>${version.plugin.coveralls}</version>
  176. </plugin>
  177. <!-- Also allow for manual spotbugs execution. Note that the generated warnings do not always apply for Byte Buddy's use case. -->
  178. <plugin>
  179. <groupId>com.github.spotbugs</groupId>
  180. <artifactId>spotbugs-maven-plugin</artifactId>
  181. <version>${version.plugin.spotbugs}</version>
  182. <configuration>
  183. <skip>${spotbugs.skip}</skip>
  184. <effort>Max</effort>
  185. <threshold>Low</threshold>
  186. <xmlOutput>true</xmlOutput>
  187. <failOnError>false</failOnError>
  188. <spotbugsXmlOutputDirectory>${project.build.directory}/spotbugs</spotbugsXmlOutputDirectory>
  189. </configuration>
  190. </plugin>
  191. <!-- Enable scanning for methods above the inlining threshold (JDK 7+) -->
  192. <plugin>
  193. <groupId>com.github.ferstl</groupId>
  194. <artifactId>jitwatch-jarscan-maven-plugin</artifactId>
  195. <version>${version.plugin.jitwatch}</version>
  196. </plugin>
  197. <!-- Enable scanning for binar changes between releases -->
  198. <plugin>
  199. <groupId>org.codehaus.mojo</groupId>
  200. <artifactId>clirr-maven-plugin</artifactId>
  201. <version>${version.plugin.clirr}</version>
  202. </plugin>
  203. </plugins>
  204. <pluginManagement>
  205. <plugins>
  206. <plugin>
  207. <groupId>org.apache.maven.plugins</groupId>
  208. <artifactId>maven-clean-plugin</artifactId>
  209. <version>${version.plugin.clean}</version>
  210. </plugin>
  211. <plugin>
  212. <groupId>org.apache.maven.plugins</groupId>
  213. <artifactId>maven-jar-plugin</artifactId>
  214. <version>${version.plugin.jar}</version>
  215. </plugin>
  216. <plugin>
  217. <groupId>org.apache.maven.plugins</groupId>
  218. <artifactId>maven-resources-plugin</artifactId>
  219. <version>${version.plugin.resources}</version>
  220. </plugin>
  221. <plugin>
  222. <groupId>org.apache.maven.plugins</groupId>
  223. <artifactId>maven-install-plugin</artifactId>
  224. <version>${version.plugin.install}</version>
  225. </plugin>
  226. <plugin>
  227. <groupId>org.apache.maven.plugins</groupId>
  228. <artifactId>maven-surefire-plugin</artifactId>
  229. <version>${version.plugin.surefire}</version>
  230. </plugin>
  231. <plugin>
  232. <groupId>org.apache.maven.plugins</groupId>
  233. <artifactId>maven-deploy-plugin</artifactId>
  234. <version>${version.plugin.deploy}</version>
  235. <configuration>
  236. <updateReleaseInfo>true</updateReleaseInfo>
  237. </configuration>
  238. </plugin>
  239. <plugin>
  240. <groupId>org.apache.maven.plugins</groupId>
  241. <artifactId>maven-compiler-plugin</artifactId>
  242. <version>${version.plugin.compiler}</version>
  243. <inherited>true</inherited>
  244. <configuration>
  245. <source>${code.level}</source>
  246. <target>${code.level}</target>
  247. <encoding>${project.build.sourceEncoding}</encoding>
  248. </configuration>
  249. </plugin>
  250. <plugin>
  251. <groupId>org.apache.maven.plugins</groupId>
  252. <artifactId>maven-plugin-plugin</artifactId>
  253. <version>${version.plugin.plugin}</version>
  254. </plugin>
  255. </plugins>
  256. </pluginManagement>
  257. </build>
  258. <!-- Define explicit version to overcome problem with generated reports. -->
  259. <reporting>
  260. <plugins>
  261. <plugin>
  262. <groupId>org.apache.maven.plugins</groupId>
  263. <artifactId>maven-jxr-plugin</artifactId>
  264. <version>${version.plugin.jxr}</version>
  265. </plugin>
  266. </plugins>
  267. </reporting>
  268. <distributionManagement>
  269. <repository>
  270. <id>bintray</id>
  271. <url>https://api.bintray.com/maven/raphw/maven/ByteBuddy</url>
  272. </repository>
  273. </distributionManagement>
  274. <profiles>
  275. <!-- Fallback for Java 6 build to use older, compatible versions of plugins. -->
  276. <profile>
  277. <id>java6</id>
  278. <activation>
  279. <activeByDefault>false</activeByDefault>
  280. <jdk>1.6</jdk>
  281. </activation>
  282. <properties>
  283. <version.plugin.checkstyle>2.15</version.plugin.checkstyle>
  284. <version.plugin.compiler>3.6.2</version.plugin.compiler>
  285. <spotbugs.skip>true</spotbugs.skip>
  286. </properties>
  287. </profile>
  288. <!-- Runs the build with a target version for Java 7 -->
  289. <profile>
  290. <id>java7</id>
  291. <activation>
  292. <activeByDefault>false</activeByDefault>
  293. </activation>
  294. <properties>
  295. <code.level>1.7</code.level>
  296. <spotbugs.skip>true</spotbugs.skip>
  297. </properties>
  298. </profile>
  299. <!-- Runs the build with a target version for Java 8 -->
  300. <profile>
  301. <id>java8</id>
  302. <activation>
  303. <activeByDefault>false</activeByDefault>
  304. </activation>
  305. <properties>
  306. <code.level>1.8</code.level>
  307. </properties>
  308. </profile>
  309. <!-- Runs the build with a target version for Java 9 -->
  310. <profile>
  311. <id>java9</id>
  312. <activation>
  313. <activeByDefault>false</activeByDefault>
  314. </activation>
  315. <properties>
  316. <code.level>9</code.level>
  317. </properties>
  318. </profile>
  319. <!-- Runs the build with a target version for Java 10 -->
  320. <profile>
  321. <id>java10</id>
  322. <activation>
  323. <activeByDefault>false</activeByDefault>
  324. </activation>
  325. <properties>
  326. <code.level>9</code.level>
  327. <spotbugs.skip>true</spotbugs.skip>
  328. </properties>
  329. </profile>
  330. <!-- Runs the build with a target version for Java 11 -->
  331. <profile>
  332. <id>java11</id>
  333. <activation>
  334. <activeByDefault>false</activeByDefault>
  335. </activation>
  336. <properties>
  337. <code.level>9</code.level>
  338. <spotbugs.skip>true</spotbugs.skip>
  339. </properties>
  340. </profile>
  341. <!-- Creates additional artifacts that are required for deployment. -->
  342. <profile>
  343. <id>extras</id>
  344. <activation>
  345. <activeByDefault>false</activeByDefault>
  346. </activation>
  347. <properties>
  348. <bytebuddy.extras>true</bytebuddy.extras>
  349. </properties>
  350. <build>
  351. <plugins>
  352. <!-- Create source code artifact. -->
  353. <plugin>
  354. <groupId>org.apache.maven.plugins</groupId>
  355. <artifactId>maven-source-plugin</artifactId>
  356. <version>${version.plugin.source}</version>
  357. <executions>
  358. <execution>
  359. <goals>
  360. <goal>jar</goal>
  361. </goals>
  362. </execution>
  363. </executions>
  364. </plugin>
  365. <!-- Create javadoc artifact. -->
  366. <plugin>
  367. <groupId>org.apache.maven.plugins</groupId>
  368. <artifactId>maven-javadoc-plugin</artifactId>
  369. <version>${version.plugin.javadoc}</version>
  370. <executions>
  371. <execution>
  372. <id>attach-javadoc</id>
  373. <goals>
  374. <goal>jar</goal>
  375. </goals>
  376. </execution>
  377. <!-- Additionally to the regular jar file specified above, create an aggregated jar. -->
  378. <execution>
  379. <id>aggregate-javadoc</id>
  380. <goals>
  381. <goal>aggregate</goal>
  382. </goals>
  383. <phase>package</phase>
  384. <configuration>
  385. <doctitle>Byte Buddy (full API), version ${project.version}</doctitle>
  386. <!-- Fails due to repacking of ASM by the Shade plugin. -->
  387. <failOnError>false</failOnError>
  388. </configuration>
  389. </execution>
  390. </executions>
  391. <configuration>
  392. <detectJavaApiLink>true</detectJavaApiLink>
  393. <links>
  394. <link>${asm.javadoc}</link>
  395. </links>
  396. </configuration>
  397. </plugin>
  398. </plugins>
  399. </build>
  400. </profile>
  401. <!-- Sign any created artifact. (Requires configuration of gpg on the executing machine.) -->
  402. <profile>
  403. <id>gpg</id>
  404. <activation>
  405. <activeByDefault>false</activeByDefault>
  406. </activation>
  407. <build>
  408. <plugins>
  409. <!-- Sign artifacts. -->
  410. <plugin>
  411. <groupId>org.apache.maven.plugins</groupId>
  412. <artifactId>maven-gpg-plugin</artifactId>
  413. <version>${version.plugin.gpg}</version>
  414. <executions>
  415. <execution>
  416. <phase>verify</phase>
  417. <goals>
  418. <goal>sign</goal>
  419. </goals>
  420. </execution>
  421. </executions>
  422. </plugin>
  423. </plugins>
  424. </build>
  425. </profile>
  426. <!-- Basic checks that are not requiring too much runtime. -->
  427. <profile>
  428. <id>checks</id>
  429. <activation>
  430. <activeByDefault>true</activeByDefault>
  431. </activation>
  432. <build>
  433. <plugins>
  434. <!-- Check style on build. -->
  435. <plugin>
  436. <groupId>org.apache.maven.plugins</groupId>
  437. <artifactId>maven-checkstyle-plugin</artifactId>
  438. <version>${version.plugin.checkstyle}</version>
  439. <executions>
  440. <execution>
  441. <phase>validate</phase>
  442. <goals>
  443. <goal>check</goal>
  444. </goals>
  445. <configuration>
  446. <configLocation>checkstyle.xml</configLocation>
  447. <consoleOutput>true</consoleOutput>
  448. <failsOnError>true</failsOnError>
  449. <excludes>**/generated/**/*</excludes>
  450. </configuration>
  451. </execution>
  452. </executions>
  453. </plugin>
  454. <!-- Check API compatibility. -->
  455. <plugin>
  456. <groupId>org.codehaus.mojo</groupId>
  457. <artifactId>animal-sniffer-maven-plugin</artifactId>
  458. <version>${version.plugin.animal-sniffer}</version>
  459. <executions>
  460. <execution>
  461. <phase>validate</phase>
  462. <goals>
  463. <goal>check</goal>
  464. </goals>
  465. <configuration>
  466. <signature>
  467. <groupId>org.codehaus.mojo.signature</groupId>
  468. <artifactId>java16</artifactId>
  469. <version>1.1</version>
  470. </signature>
  471. </configuration>
  472. </execution>
  473. </executions>
  474. </plugin>
  475. <!-- Make sure that Byte Buddy does never depend on ASM's tree API. -->
  476. <plugin>
  477. <groupId>org.apache.maven.plugins</groupId>
  478. <artifactId>maven-enforcer-plugin</artifactId>
  479. <version>${version.plugin.enforcer}</version>
  480. <executions>
  481. <execution>
  482. <goals>
  483. <goal>enforce</goal>
  484. </goals>
  485. <configuration>
  486. <fail>true</fail>
  487. <rules>
  488. <bannedDependencies>
  489. <includes>
  490. <include>org.ow2.asm:asm-tree</include>
  491. </includes>
  492. </bannedDependencies>
  493. </rules>
  494. </configuration>
  495. </execution>
  496. </executions>
  497. </plugin>
  498. </plugins>
  499. </build>
  500. </profile>
  501. <!-- Integration profile that executes long-running tasks and additional static code analysis. -->
  502. <profile>
  503. <id>integration</id>
  504. <activation>
  505. <activeByDefault>false</activeByDefault>
  506. </activation>
  507. <properties>
  508. <bytebuddy.integration>true</bytebuddy.integration>
  509. </properties>
  510. <build>
  511. <plugins>
  512. <!-- Enable non-fast-running unit tests by setting the integration profile. -->
  513. <plugin>
  514. <groupId>org.apache.maven.plugins</groupId>
  515. <artifactId>maven-surefire-plugin</artifactId>
  516. <configuration>
  517. <systemPropertyVariables>
  518. <net.bytebuddy.test.integration>true</net.bytebuddy.test.integration>
  519. </systemPropertyVariables>
  520. </configuration>
  521. </plugin>
  522. <!-- Run spotbugs if not specified differently in a module.-->
  523. <plugin>
  524. <groupId>com.github.spotbugs</groupId>
  525. <artifactId>spotbugs-maven-plugin</artifactId>
  526. <version>${version.plugin.spotbugs}</version>
  527. <executions>
  528. <execution>
  529. <phase>verify</phase>
  530. <goals>
  531. <goal>check</goal>
  532. </goals>
  533. <configuration>
  534. <skip>${spotbugs.skip}</skip>
  535. <effort>Max</effort>
  536. <threshold>Low</threshold>
  537. <xmlOutput>true</xmlOutput>
  538. <failOnError>true</failOnError>
  539. </configuration>
  540. </execution>
  541. </executions>
  542. </plugin>
  543. </plugins>
  544. </build>
  545. </profile>
  546. <!-- Only build the Android test application on demand as it requires Android SDK installation. -->
  547. <profile>
  548. <id>android</id>
  549. <activation>
  550. <activeByDefault>false</activeByDefault>
  551. </activation>
  552. <modules>
  553. <module>byte-buddy</module>
  554. <module>byte-buddy-dep</module>
  555. <module>byte-buddy-benchmark</module>
  556. <module>byte-buddy-agent</module>
  557. <module>byte-buddy-android</module>
  558. <module>byte-buddy-android-test</module>
  559. </modules>
  560. </profile>
  561. </profiles>
  562. </project>