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