| <?xml version="1.0" encoding="UTF-8"?> |
| <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"> |
| <modelVersion>4.0.0</modelVersion> |
| |
| <groupId>net.bytebuddy</groupId> |
| <artifactId>byte-buddy-parent</artifactId> |
| <version>1.7.9</version> |
| <packaging>pom</packaging> |
| |
| <inceptionYear>2014</inceptionYear> |
| |
| <name>Byte Buddy (parent)</name> |
| <description> |
| Byte Buddy is a Java library for creating Java classes at run time. |
| The parent artifact contains configuration information that concern all modules. |
| </description> |
| <url>http://bytebuddy.net</url> |
| |
| <!-- |
| There are several build profiles available: |
| - extras: Creates additional artifacts containing source files and javadoc. (activated on release) |
| - gpg: Sign all artifacts using gpg. (activated on release) |
| - checks: Applies style checks to the source files. (activated by default, activated on release) |
| - integration: Runs additional unit tests and executes static code analysis (activated on Travis CI) |
| - android: Builds an Android test application. An Android SDK is required for doing so. (excluded from release) |
| |
| It is also possible to build Byte Buddy against a specific byte code level. By default, Byte Buddy is Java 6 compatible: |
| - java7: Sets the target level to Java 7. |
| - java8: Sets the target level to Java 8. |
| |
| Additionally, the following reports are available via Maven: |
| - jacoco:prepare-agent verify jacoco:report - Computes coverage for test suite (all modules) |
| - org.pitest:pitest-maven:mutationCoverage - Runs mutation tests (all modules) |
| - findbugs:findbugs findbugs:gui - Runs findbugs and shows a report in a graphical interface (module specific) |
| - com.github.ferstl:jitwatch-jarscan-maven-plugin:scan - Finds all methods above HotSpot's inlining threshold |
| - clirr:check - Checks for binary changes in the API |
| --> |
| |
| <modules> |
| <module>byte-buddy</module> |
| <module>byte-buddy-dep</module> |
| <module>byte-buddy-benchmark</module> |
| <module>byte-buddy-agent</module> |
| <module>byte-buddy-android</module> |
| <module>byte-buddy-maven-plugin</module> |
| <module>byte-buddy-gradle-plugin</module> |
| </modules> |
| |
| <properties> |
| <bytebuddy.extras>false</bytebuddy.extras> |
| <bytebuddy.integration>false</bytebuddy.integration> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <code.level>1.6</code.level> |
| <pitest.target>net.bytebuddy</pitest.target> |
| <asm.javadoc>http://asm.ow2.org/asm50/javadoc/user/</asm.javadoc> |
| <version.asm>6.0</version.asm> |
| <version.junit>4.12</version.junit> |
| <version.mockito>2.7.22</version.mockito> |
| <version.plugin.clean>3.0.0</version.plugin.clean> |
| <version.plugin.bundle>3.3.0</version.plugin.bundle> |
| <version.plugin.compiler>3.6.1</version.plugin.compiler> |
| <version.plugin.install>2.5.2</version.plugin.install> |
| <version.plugin.deploy>2.8.2</version.plugin.deploy> |
| <version.plugin.javadoc>2.10.4</version.plugin.javadoc> |
| <version.plugin.source>3.0.1</version.plugin.source> |
| <version.plugin.shade>3.1.0</version.plugin.shade> |
| <version.plugin.gpg>1.6</version.plugin.gpg> |
| <version.plugin.jxr>2.5</version.plugin.jxr> |
| <version.plugin.jar>3.0.2</version.plugin.jar> |
| <version.plugin.plugin>3.5</version.plugin.plugin> |
| <version.plugin.release>2.5.3</version.plugin.release> |
| <version.plugin.resources>3.0.2</version.plugin.resources> |
| <version.plugin.surefire>2.20</version.plugin.surefire> |
| <version.plugin.pitest>1.2.0</version.plugin.pitest> |
| <version.plugin.animal-sniffer>1.16</version.plugin.animal-sniffer> |
| <version.plugin.enforcer>1.4.1</version.plugin.enforcer> |
| <version.plugin.jacoco>0.7.9</version.plugin.jacoco> |
| <version.plugin.coveralls>4.1.0</version.plugin.coveralls> |
| <version.plugin.checkstyle>2.17</version.plugin.checkstyle> |
| <version.plugin.findbugs>3.0.5</version.plugin.findbugs> |
| <version.annotations.findbugs>3.0.1u2</version.annotations.findbugs> |
| <version.plugin.jitwatch>1.0.1</version.plugin.jitwatch> |
| <version.plugin.clirr>2.8</version.plugin.clirr> |
| <version.android.sdk>4.1.1.4</version.android.sdk> |
| <version.lombok>1.16.18</version.lombok> |
| </properties> |
| |
| <licenses> |
| <license> |
| <name>The Apache Software License, Version 2.0</name> |
| <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> |
| <distribution>repo</distribution> |
| <comments>A business-friendly OSS license</comments> |
| </license> |
| </licenses> |
| |
| <developers> |
| <developer> |
| <id>raphw</id> |
| <name>Rafael Winterhalter</name> |
| <email>rafael.wth@gmail.com</email> |
| <url>http://rafael.codes</url> |
| <roles> |
| <role>developer</role> |
| </roles> |
| <timezone>+1</timezone> |
| </developer> |
| </developers> |
| |
| <issueManagement> |
| <system>github.com</system> |
| <url>https://github.com/raphw/byte-buddy/issues</url> |
| </issueManagement> |
| |
| <scm> |
| <connection>scm:git:git@github.com:raphw/byte-buddy.git</connection> |
| <developerConnection>scm:git:git@github.com:raphw/byte-buddy.git</developerConnection> |
| <url>git@github.com:raphw/byte-buddy.git</url> |
| <tag>byte-buddy-1.7.9</tag> |
| </scm> |
| |
| <dependencies> |
| <!-- Allows the suppression of find bugs false-positives by annotations without adding an actual dependency. --> |
| <dependency> |
| <groupId>com.google.code.findbugs</groupId> |
| <artifactId>annotations</artifactId> |
| <version>${version.annotations.findbugs}</version> |
| <scope>provided</scope> |
| </dependency> |
| <!-- Allow usage of Lombok annotations. --> |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <version>${version.lombok}</version> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <plugins> |
| <!-- Define release properties. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-release-plugin</artifactId> |
| <version>${version.plugin.release}</version> |
| <configuration> |
| <useReleaseProfile>false</useReleaseProfile> |
| <releaseProfiles>extras,gpg</releaseProfiles> |
| <autoVersionSubmodules>true</autoVersionSubmodules> |
| <tagNameFormat>byte-buddy-@{project.version}</tagNameFormat> |
| </configuration> |
| </plugin> |
| <!-- Enable mutation testing. --> |
| <plugin> |
| <groupId>org.pitest</groupId> |
| <artifactId>pitest-maven</artifactId> |
| <version>${version.plugin.pitest}</version> |
| <configuration> |
| <targetClasses> |
| <param>${pitest.target}.*</param> |
| </targetClasses> |
| <targetTests> |
| <param>${pitest.target}.*</param> |
| </targetTests> |
| </configuration> |
| </plugin> |
| <!-- Configure Jacoco support for evaluating test case coverage. --> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>${version.plugin.jacoco}</version> |
| <configuration> |
| <includes> |
| <include>net/bytebuddy/**</include> |
| </includes> |
| <excludes> |
| <exclude>net/bytebuddy/benchmark/generated/*</exclude> |
| <!-- Avoid adding synthetic members to test classes as test assert class members. --> |
| <exclude>*Test*</exclude> |
| <exclude>*test*</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <!-- Generate coveralls reports from Travis. --> |
| <plugin> |
| <groupId>org.eluder.coveralls</groupId> |
| <artifactId>coveralls-maven-plugin</artifactId> |
| <version>${version.plugin.coveralls}</version> |
| </plugin> |
| <!-- Also allow for manual findbugs execution. Note that the generated warnings do not always apply for Byte Buddy's use case. --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>findbugs-maven-plugin</artifactId> |
| <version>${version.plugin.findbugs}</version> |
| <configuration> |
| <effort>Max</effort> |
| <threshold>Low</threshold> |
| <xmlOutput>true</xmlOutput> |
| <failOnError>false</failOnError> |
| <findbugsXmlOutputDirectory>${project.build.directory}/findbugs</findbugsXmlOutputDirectory> |
| </configuration> |
| </plugin> |
| <!-- Enable scanning for methods above the inlining threshold (JDK 7+) --> |
| <plugin> |
| <groupId>com.github.ferstl</groupId> |
| <artifactId>jitwatch-jarscan-maven-plugin</artifactId> |
| <version>${version.plugin.jitwatch}</version> |
| </plugin> |
| <!-- Enable scanning for binar changes between releases --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>clirr-maven-plugin</artifactId> |
| <version>${version.plugin.clirr}</version> |
| </plugin> |
| </plugins> |
| |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-clean-plugin</artifactId> |
| <version>${version.plugin.clean}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>${version.plugin.jar}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <version>${version.plugin.resources}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-install-plugin</artifactId> |
| <version>${version.plugin.install}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${version.plugin.surefire}</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-deploy-plugin</artifactId> |
| <version>${version.plugin.deploy}</version> |
| <configuration> |
| <updateReleaseInfo>true</updateReleaseInfo> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>${version.plugin.compiler}</version> |
| <inherited>true</inherited> |
| <configuration> |
| <source>${code.level}</source> |
| <target>${code.level}</target> |
| <encoding>${project.build.sourceEncoding}</encoding> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-plugin-plugin</artifactId> |
| <version>${version.plugin.plugin}</version> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| |
| <!-- Define explicit version to overcome problem with generated reports. --> |
| <reporting> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jxr-plugin</artifactId> |
| <version>${version.plugin.jxr}</version> |
| </plugin> |
| </plugins> |
| </reporting> |
| |
| <distributionManagement> |
| <repository> |
| <id>bintray</id> |
| <url>https://api.bintray.com/maven/raphw/maven/ByteBuddy</url> |
| </repository> |
| </distributionManagement> |
| |
| <profiles> |
| <!-- Fallback for Java 6 build to use older, compatible versions of plugins. --> |
| <profile> |
| <id>java6</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| <jdk>1.6</jdk> |
| </activation> |
| <properties> |
| <version.plugin.findbugs>2.5.5</version.plugin.findbugs> |
| <version.annotations.findbugs>2.0.3</version.annotations.findbugs> |
| <version.plugin.checkstyle>2.15</version.plugin.checkstyle> |
| </properties> |
| </profile> |
| <!-- Runs the build with a target version for Java 7 --> |
| <profile> |
| <id>java7</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <properties> |
| <code.level>1.7</code.level> |
| </properties> |
| </profile> |
| <!-- Runs the build with a target version for Java 8 --> |
| <profile> |
| <id>java8</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <properties> |
| <code.level>1.8</code.level> |
| </properties> |
| </profile> |
| <!-- Runs the build with a target version for Java 9 --> |
| <profile> |
| <id>java9</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <properties> |
| <code.level>9</code.level> |
| </properties> |
| </profile> |
| <!-- Creates additional artifacts that are required for deployment. --> |
| <profile> |
| <id>extras</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <properties> |
| <bytebuddy.extras>true</bytebuddy.extras> |
| </properties> |
| <build> |
| <plugins> |
| <!-- Create source code artifact. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <version>${version.plugin.source}</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- Create javadoc artifact. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>${version.plugin.javadoc}</version> |
| <executions> |
| <execution> |
| <id>attach-javadoc</id> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| </execution> |
| <!-- Additionally to the regular jar file specified above, create an aggregated jar. --> |
| <execution> |
| <id>aggregate-javadoc</id> |
| <goals> |
| <goal>aggregate</goal> |
| </goals> |
| <phase>package</phase> |
| <configuration> |
| <doctitle>Byte Buddy (full API), version ${project.version}</doctitle> |
| <!-- Fails due to repacking of ASM by the Shade plugin. --> |
| <failOnError>false</failOnError> |
| </configuration> |
| </execution> |
| </executions> |
| <configuration> |
| <detectJavaApiLink>true</detectJavaApiLink> |
| <links> |
| <link>${asm.javadoc}</link> |
| </links> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!-- Sign any created artifact. (Requires configuration of gpg on the executing machine.) --> |
| <profile> |
| <id>gpg</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <build> |
| <plugins> |
| <!-- Sign artifacts. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-gpg-plugin</artifactId> |
| <version>${version.plugin.gpg}</version> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>sign</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!-- Basic checks that are not requiring too much runtime. --> |
| <profile> |
| <id>checks</id> |
| <activation> |
| <activeByDefault>true</activeByDefault> |
| </activation> |
| <build> |
| <plugins> |
| <!-- Check style on build. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <version>${version.plugin.checkstyle}</version> |
| <executions> |
| <execution> |
| <phase>validate</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <configuration> |
| <configLocation>checkstyle.xml</configLocation> |
| <consoleOutput>true</consoleOutput> |
| <failsOnError>true</failsOnError> |
| <excludes>**/generated/**/*</excludes> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- Check API compatibility. --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>animal-sniffer-maven-plugin</artifactId> |
| <version>${version.plugin.animal-sniffer}</version> |
| <executions> |
| <execution> |
| <phase>validate</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <configuration> |
| <signature> |
| <groupId>org.codehaus.mojo.signature</groupId> |
| <artifactId>java16</artifactId> |
| <version>1.1</version> |
| </signature> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- Make sure that Byte Buddy does never depend on ASM's tree API. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>${version.plugin.enforcer}</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <fail>true</fail> |
| <rules> |
| <bannedDependencies> |
| <includes> |
| <include>org.ow2.asm:asm-tree</include> |
| </includes> |
| </bannedDependencies> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!-- Integration profile that executes long-running tasks and additional static code analysis. --> |
| <profile> |
| <id>integration</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <properties> |
| <bytebuddy.integration>true</bytebuddy.integration> |
| </properties> |
| <build> |
| <plugins> |
| <!-- Enable non-fast-running unit tests by setting the integration profile. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <systemPropertyVariables> |
| <net.bytebuddy.test.integration>true</net.bytebuddy.test.integration> |
| </systemPropertyVariables> |
| </configuration> |
| </plugin> |
| <!-- Run findbugs if not specified differently in a module.--> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>findbugs-maven-plugin</artifactId> |
| <version>${version.plugin.findbugs}</version> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <configuration> |
| <effort>Max</effort> |
| <threshold>Low</threshold> |
| <xmlOutput>true</xmlOutput> |
| <failOnError>true</failOnError> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!-- Only build the Android test application on demand as it requires Android SDK installation. --> |
| <profile> |
| <id>android</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <modules> |
| <module>byte-buddy</module> |
| <module>byte-buddy-dep</module> |
| <module>byte-buddy-benchmark</module> |
| <module>byte-buddy-agent</module> |
| <module>byte-buddy-android</module> |
| <module>byte-buddy-android-test</module> |
| </modules> |
| </profile> |
| </profiles> |
| |
| </project> |