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