Home | History | Annotate | Download | only in 1.4.33
      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