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