296db210ab
Motivation: oss.sonatype.org refuses to promote an artifact if it doesn't have the default JAR (the JAR without classifier.) Modifications: - Generate both the default JAR and the native JAR to make oss.sonatype.org happy - Rename the profile 'release' to 'restricted-release' which reflects what it really does better - Remove the redundant <quickbuild>true</quickbuild> in all/pom.xml We specify the profile 'full' that triggers that property already in maven-release-plugin configuration. Result: oss.sonatype.org is happy. Simpler pom.xml
969 lines
33 KiB
XML
969 lines
33 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
~ Copyright 2012 The Netty Project
|
|
~
|
|
~ The Netty Project licenses this file to you under the Apache License,
|
|
~ version 2.0 (the "License"); you may not use this file except in compliance
|
|
~ with the License. You may obtain a copy of the License at:
|
|
~
|
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
~
|
|
~ Unless required by applicable law or agreed to in writing, software
|
|
~ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
~ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
~ License for the specific language governing permissions and limitations
|
|
~ under the License.
|
|
-->
|
|
<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/maven-v4_0_0.xsd">
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<parent>
|
|
<groupId>org.sonatype.oss</groupId>
|
|
<artifactId>oss-parent</artifactId>
|
|
<version>9</version>
|
|
</parent>
|
|
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-parent</artifactId>
|
|
<packaging>pom</packaging>
|
|
<version>4.1.0.Alpha1-SNAPSHOT</version>
|
|
|
|
<name>Netty</name>
|
|
<url>http://netty.io/</url>
|
|
<description>
|
|
Netty is an asynchronous event-driven network application framework for
|
|
rapid development of maintainable high performance protocol servers and
|
|
clients.
|
|
</description>
|
|
|
|
<organization>
|
|
<name>The Netty Project</name>
|
|
<url>http://netty.io/</url>
|
|
</organization>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>Apache License, Version 2.0</name>
|
|
<url>http://www.apache.org/licenses/LICENSE-2.0</url>
|
|
</license>
|
|
</licenses>
|
|
<inceptionYear>2008</inceptionYear>
|
|
|
|
<scm>
|
|
<url>https://github.com/netty/netty</url>
|
|
<connection>scm:git:git://github.com/netty/netty.git</connection>
|
|
<developerConnection>scm:git:ssh://git@github.com/netty/netty.git</developerConnection>
|
|
<tag>HEAD</tag>
|
|
</scm>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>netty.io</id>
|
|
<name>The Netty Project Contributors</name>
|
|
<email>netty@googlegroups.com</email>
|
|
<url>http://netty.io/</url>
|
|
<organization>The Netty Project</organization>
|
|
<organizationUrl>http://netty.io/</organizationUrl>
|
|
</developer>
|
|
</developers>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>leak</id>
|
|
<properties>
|
|
<test.jvm.argLine>
|
|
-server
|
|
-dsa -da -ea:io.netty...
|
|
-XX:+AggressiveOpts
|
|
-XX:+TieredCompilation
|
|
-XX:+UseBiasedLocking
|
|
-XX:+UseFastAccessorMethods
|
|
-XX:+OptimizeStringConcat
|
|
-XX:+HeapDumpOnOutOfMemoryError
|
|
-Dio.netty.leakDetectionLevel=3
|
|
-verbose:gc
|
|
</test.jvm.argLine>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>coverage</id>
|
|
<properties>
|
|
<test.jvm.argLine.coverage>${jacoco.argLine}</test.jvm.argLine.coverage>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<version>0.6.4.201312101107</version>
|
|
<executions>
|
|
<execution>
|
|
<id>jacoco-prepare-agent</id>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
<configuration>
|
|
<propertyName>jacoco.argLine</propertyName>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<!-- Our Javadoc has poor enough quality to fail the build thanks to JDK8 javadoc which got more strict. -->
|
|
<profile>
|
|
<id>jdk8</id>
|
|
<activation>
|
|
<jdk>[1.8,)</jdk>
|
|
</activation>
|
|
<properties>
|
|
<maven.javadoc.failOnError>false</maven.javadoc.failOnError>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>linux</id>
|
|
<activation>
|
|
<os>
|
|
<family>linux</family>
|
|
</os>
|
|
</activation>
|
|
<modules>
|
|
<module>transport-native-epoll</module>
|
|
</modules>
|
|
</profile>
|
|
<!--
|
|
Netty must be released from RHEL 6.5 x86_64 or compatible so that:
|
|
|
|
1) we ship x86_64 version of epoll transport officially, and
|
|
2) we ensure the ABI compatibility with older GLIBC versions.
|
|
|
|
The shared library built on a distribution with newer GLIBC
|
|
will not run on older distributions.
|
|
-->
|
|
<profile>
|
|
<id>restricted-release</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-release-environment</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireProperty>
|
|
<regexMessage>
|
|
Release process must be performed on linux-x86_64.
|
|
</regexMessage>
|
|
<property>os.detected.classifier</property>
|
|
<regex>^linux-x86_64$</regex>
|
|
</requireProperty>
|
|
<requireFilesContent>
|
|
<message>
|
|
Release process must be performed on RHEL 6.5 or its derivatives.
|
|
</message>
|
|
<files>
|
|
<file>/etc/redhat-release</file>
|
|
</files>
|
|
<content>release 6.5</content>
|
|
</requireFilesContent>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<properties>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
<jboss.marshalling.version>1.3.18.GA</jboss.marshalling.version>
|
|
<test.jvm.argLine.coverage></test.jvm.argLine.coverage> <!-- Set when 'coverage' profile is active -->
|
|
<test.jvm.argLine>
|
|
-server
|
|
-dsa -da -ea:io.netty...
|
|
-XX:+AggressiveOpts
|
|
-XX:+TieredCompilation
|
|
-XX:+UseBiasedLocking
|
|
-XX:+UseFastAccessorMethods
|
|
-XX:+OptimizeStringConcat
|
|
-XX:+HeapDumpOnOutOfMemoryError
|
|
-verbose:gc
|
|
</test.jvm.argLine>
|
|
</properties>
|
|
|
|
<modules>
|
|
<module>common</module>
|
|
<module>buffer</module>
|
|
<module>codec</module>
|
|
<module>codec-http</module>
|
|
<module>codec-memcache</module>
|
|
<module>codec-socks</module>
|
|
<module>transport</module>
|
|
<module>transport-rxtx</module>
|
|
<module>transport-sctp</module>
|
|
<module>transport-udt</module>
|
|
<module>handler</module>
|
|
<module>example</module>
|
|
<module>testsuite</module>
|
|
<module>microbench</module>
|
|
<module>all</module>
|
|
<module>tarball</module>
|
|
</modules>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<!-- Byte code generator - completely optional -->
|
|
<dependency>
|
|
<groupId>org.javassist</groupId>
|
|
<artifactId>javassist</artifactId>
|
|
<version>3.18.0-GA</version>
|
|
<scope>compile</scope>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- JBoss Marshalling - completely optional -->
|
|
<dependency>
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
<artifactId>jboss-marshalling</artifactId>
|
|
<version>${jboss.marshalling.version}</version>
|
|
<scope>compile</scope>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- SPDY Example - completely optional -->
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty.npn</groupId>
|
|
<artifactId>npn-api</artifactId>
|
|
<version>1.1.0.v20120525</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.google.protobuf</groupId>
|
|
<artifactId>protobuf-java</artifactId>
|
|
<version>2.5.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.jcraft</groupId>
|
|
<artifactId>jzlib</artifactId>
|
|
<version>1.1.2</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.rxtx</groupId>
|
|
<artifactId>rxtx</artifactId>
|
|
<version>2.1.7</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.barchart.udt</groupId>
|
|
<artifactId>barchart-udt-bundle</artifactId>
|
|
<version>2.3.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>javax.servlet</groupId>
|
|
<artifactId>servlet-api</artifactId>
|
|
<version>2.5</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>1.7.5</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-logging</groupId>
|
|
<artifactId>commons-logging</artifactId>
|
|
<version>1.1.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>log4j</groupId>
|
|
<artifactId>log4j</artifactId>
|
|
<version>1.2.17</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<artifactId>mail</artifactId>
|
|
<groupId>javax.mail</groupId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<artifactId>jms</artifactId>
|
|
<groupId>javax.jms</groupId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<artifactId>jmxtools</artifactId>
|
|
<groupId>com.sun.jdmk</groupId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<artifactId>jmxri</artifactId>
|
|
<groupId>com.sun.jmx</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Metrics providers -->
|
|
<dependency>
|
|
<groupId>com.yammer.metrics</groupId>
|
|
<artifactId>metrics-core</artifactId>
|
|
<version>2.2.0</version>
|
|
</dependency>
|
|
|
|
<!-- Common test dependencies -->
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<version>4.11</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.easymock</groupId>
|
|
<artifactId>easymock</artifactId>
|
|
<version>3.2</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.easymock</groupId>
|
|
<artifactId>easymockclassextension</artifactId>
|
|
<version>3.2</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jmock</groupId>
|
|
<artifactId>jmock-junit4</artifactId>
|
|
<version>2.6.0</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
<version>1.0.13</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- Test dependencies for jboss marshalling encoder/decoder -->
|
|
<dependency>
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
<artifactId>jboss-marshalling-serial</artifactId>
|
|
<version>${jboss.marshalling.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
<artifactId>jboss-marshalling-river</artifactId>
|
|
<version>${jboss.marshalling.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- Test dependencies for microbench -->
|
|
<dependency>
|
|
<groupId>com.google.caliper</groupId>
|
|
<artifactId>caliper</artifactId>
|
|
<version>0.5-rc1</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<dependencies>
|
|
<!-- Enable Javassist support for all test runs -->
|
|
<dependency>
|
|
<groupId>org.javassist</groupId>
|
|
<artifactId>javassist</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- Testing frameworks and related dependencies -->
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.easymock</groupId>
|
|
<artifactId>easymock</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.easymock</groupId>
|
|
<artifactId>easymockclassextension</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jmock</groupId>
|
|
<artifactId>jmock-junit4</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<extensions>
|
|
<extension>
|
|
<groupId>kr.motd.maven</groupId>
|
|
<artifactId>os-maven-plugin</artifactId>
|
|
<version>1.1.2</version>
|
|
</extension>
|
|
</extensions>
|
|
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-tools</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireJavaVersion>
|
|
<!-- Enforce java 1.7 as minimum for compiling -->
|
|
<!-- This is needed because of java.util.zip.Deflater and NIO UDP multicast-->
|
|
<version>[1.7.0,)</version>
|
|
</requireJavaVersion>
|
|
<requireMavenVersion>
|
|
<version>[3.0.5,)</version>
|
|
</requireMavenVersion>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.1</version>
|
|
<configuration>
|
|
<compilerVersion>1.7</compilerVersion>
|
|
<fork>true</fork>
|
|
<source>1.6</source>
|
|
<target>1.6</target>
|
|
<debug>true</debug>
|
|
<optimize>true</optimize>
|
|
<showDeprecation>true</showDeprecation>
|
|
<showWarnings>true</showWarnings>
|
|
<compilerArgument>-Xlint:-options</compilerArgument>
|
|
<!-- XXX: maven-release-plugin complains - MRELEASE-715 -->
|
|
<!--
|
|
<compilerArguments>
|
|
<Xlint:-options />
|
|
<Xlint:unchecked />
|
|
<Xlint:deprecation />
|
|
</compilerArguments>
|
|
-->
|
|
<meminitial>256m</meminitial>
|
|
<maxmem>1024m</maxmem>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<!-- ensure that only methods available in java 1.6 can
|
|
be used even when compiling with java 1.7+ -->
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>animal-sniffer-maven-plugin</artifactId>
|
|
<version>1.9</version>
|
|
<configuration>
|
|
<signature>
|
|
<groupId>org.codehaus.mojo.signature</groupId>
|
|
<artifactId>java16</artifactId>
|
|
<version>1.0</version>
|
|
</signature>
|
|
<ignores>
|
|
<ignore>sun.misc.Unsafe</ignore>
|
|
<ignore>sun.misc.Cleaner</ignore>
|
|
<ignore>sun.nio.ch.DirectBuffer</ignore>
|
|
|
|
<ignore>java.util.zip.Deflater</ignore>
|
|
|
|
<!-- Used for NIO UDP multicast -->
|
|
<ignore>java.nio.channels.DatagramChannel</ignore>
|
|
<ignore>java.nio.channels.MembershipKey</ignore>
|
|
<ignore>java.net.StandardProtocolFamily</ignore>
|
|
<ignore>java.nio.channels.spi.SelectorProvider</ignore>
|
|
</ignores>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>process-classes</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>2.10</version>
|
|
<executions>
|
|
<execution>
|
|
<id>check-style</id>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
<phase>validate</phase>
|
|
<configuration>
|
|
<consoleOutput>true</consoleOutput>
|
|
<logViolationsToConsole>true</logViolationsToConsole>
|
|
<failsOnError>true</failsOnError>
|
|
<failOnViolation>true</failOnViolation>
|
|
<configLocation>io/netty/checkstyle.xml</configLocation>
|
|
<includeTestSourceDirectory>true</includeTestSourceDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>netty-build</artifactId>
|
|
<version>19</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<includes>
|
|
<include>**/*Test*.java</include>
|
|
<include>**/*Benchmark*.java</include>
|
|
</includes>
|
|
<excludes>
|
|
<exclude>**/Abstract*</exclude>
|
|
<exclude>**/TestUtil*</exclude>
|
|
</excludes>
|
|
<runOrder>random</runOrder>
|
|
<argLine>${test.jvm.argLine.coverage} ${test.jvm.argLine}</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
<!-- always produce osgi bundles -->
|
|
<plugin>
|
|
<groupId>org.apache.felix</groupId>
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
|
<version>2.4.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>generate-manifest</id>
|
|
<phase>process-classes</phase>
|
|
<goals>
|
|
<goal>manifest</goal>
|
|
</goals>
|
|
<configuration>
|
|
<supportedProjectTypes>
|
|
<supportedProjectType>jar</supportedProjectType>
|
|
<supportedProjectType>bundle</supportedProjectType>
|
|
</supportedProjectTypes>
|
|
<instructions>
|
|
<Export-Package>${project.groupId}.*</Export-Package>
|
|
<!-- enforce JVM vendor package as optional -->
|
|
<Import-Package>sun.misc.*;resolution:=optional,sun.nio.ch;resolution:=optional,*</Import-Package>
|
|
<!-- override "internal" private package convention -->
|
|
<Private-Package>!*</Private-Package>
|
|
</instructions>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>2.2.1</version>
|
|
<configuration>
|
|
<!--
|
|
~ Add generated MANIFEST.MF.
|
|
~ See https://github.com/netty/netty/issues/2058
|
|
-->
|
|
<useDefaultManifestFile>true</useDefaultManifestFile>
|
|
</configuration>
|
|
<executions>
|
|
<!--
|
|
~ This workaround prevents Maven from executing the 'generate-sources' phase twice.
|
|
~ See http://jira.codehaus.org/browse/MSOURCES-13
|
|
~ and http://blog.peterlynch.ca/2010/05/maven-how-to-prevent-generate-sources.html
|
|
-->
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<phase>invalid</phase>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>attach-sources-no-fork</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>jar-no-fork</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>2.9.1</version>
|
|
<configuration>
|
|
<detectOfflineLinks>false</detectOfflineLinks>
|
|
<breakiterator>true</breakiterator>
|
|
<version>false</version>
|
|
<author>false</author>
|
|
<keywords>true</keywords>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>2.7</version>
|
|
<configuration>
|
|
<retryFailedDeploymentCount>10</retryFailedDeploymentCount>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-release-plugin</artifactId>
|
|
<version>2.4.2</version>
|
|
<configuration>
|
|
<useReleaseProfile>false</useReleaseProfile>
|
|
<arguments>-P restricted-release,sonatype-oss-release,full</arguments>
|
|
<autoVersionSubmodules>true</autoVersionSubmodules>
|
|
<allowTimestampedSnapshots>false</allowTimestampedSnapshots>
|
|
<tagNameFormat>netty-@{project.version}</tagNameFormat>
|
|
</configuration>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.maven.scm</groupId>
|
|
<artifactId>maven-scm-api</artifactId>
|
|
<version>1.8.1</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.maven.scm</groupId>
|
|
<artifactId>maven-scm-provider-gitexe</artifactId>
|
|
<version>1.8.1</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
|
|
<!-- Ensure to put maven-antrun-plugin at the end of the plugin list
|
|
so that they are run lastly in the same phase. -->
|
|
<plugin>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<executions>
|
|
<!-- Generate the version properties for all artifacts. -->
|
|
<execution>
|
|
<id>write-version-properties</id>
|
|
<phase>initialize</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<taskdef resource="net/sf/antcontrib/antlib.xml" />
|
|
|
|
<!-- Get the information about the latest commit -->
|
|
<exec executable="git" outputproperty="gitOutput.shortCommitHash" resultproperty="gitExitCode.shortCommitHash" failonerror="false" failifexecutionfails="false">
|
|
<arg value="log" />
|
|
<arg value="-1" />
|
|
<arg value="--format=format:%h" />
|
|
</exec>
|
|
<if>
|
|
<equals arg2="0" arg1="${gitExitCode.shortCommitHash}" />
|
|
<then>
|
|
<property name="shortCommitHash" value="${gitOutput.shortCommitHash}" />
|
|
</then>
|
|
<else>
|
|
<property name="shortCommitHash" value="0" />
|
|
</else>
|
|
</if>
|
|
|
|
<exec executable="git" outputproperty="gitOutput.longCommitHash" resultproperty="gitExitCode.longCommitHash" failonerror="false" failifexecutionfails="false">
|
|
<arg value="log" />
|
|
<arg value="-1" />
|
|
<arg value="--format=format:%H" />
|
|
</exec>
|
|
<if>
|
|
<equals arg2="0" arg1="${gitExitCode.longCommitHash}" />
|
|
<then>
|
|
<property name="longCommitHash" value="${gitOutput.longCommitHash}" />
|
|
</then>
|
|
<else>
|
|
<property name="longCommitHash" value="0000000000000000000000000000000000000000" />
|
|
</else>
|
|
</if>
|
|
|
|
<exec executable="git" outputproperty="gitOutput.commitDate" resultproperty="gitExitCode.commitDate" failonerror="false" failifexecutionfails="false">
|
|
<arg value="log" />
|
|
<arg value="-1" />
|
|
<arg value="--format=format:%cd" />
|
|
<arg value="--date=iso" />
|
|
</exec>
|
|
<if>
|
|
<equals arg2="0" arg1="${gitExitCode.commitDate}" />
|
|
<then>
|
|
<property name="commitDate" value="${gitOutput.commitDate}" />
|
|
</then>
|
|
<else>
|
|
<property name="commitDate" value="1970-01-01 00:00:00 +0000" />
|
|
</else>
|
|
</if>
|
|
|
|
<exec executable="git" outputproperty="gitOutput.repoStatus" resultproperty="gitExitCode.repoStatus" failonerror="false" failifexecutionfails="false">
|
|
<arg value="status" />
|
|
<arg value="--porcelain" />
|
|
</exec>
|
|
<if>
|
|
<equals arg2="0" arg1="${gitExitCode.repoStatus}" />
|
|
<then>
|
|
<if>
|
|
<equals arg2="" arg1="${gitOutput.repoStatus}" />
|
|
<then>
|
|
<property name="repoStatus" value="clean" />
|
|
</then>
|
|
<else>
|
|
<property name="repoStatus" value="dirty" />
|
|
</else>
|
|
</if>
|
|
</then>
|
|
<else>
|
|
<property name="repoStatus" value="unknown" />
|
|
</else>
|
|
</if>
|
|
|
|
<!-- Print the obtained commit information. -->
|
|
<echo>Current commit: ${shortCommitHash} on ${commitDate}</echo>
|
|
|
|
<!-- Generate the .properties file. -->
|
|
<!--
|
|
<property name="metaInfDir" value="${project.basedir}/src/main/resources/META-INF" />
|
|
-->
|
|
<property name="metaInfDir" value="${project.build.outputDirectory}/META-INF" />
|
|
<property name="versionPropFile" value="${metaInfDir}/${project.groupId}.versions.properties" />
|
|
<mkdir dir="${metaInfDir}" />
|
|
<delete file="${versionPropFile}" quiet="true" />
|
|
|
|
<propertyfile file="${versionPropFile}" comment="Generated by netty-parent/pom.xml">
|
|
<entry key="${project.artifactId}.version" value="${project.version}" />
|
|
<entry key="${project.artifactId}.buildDate" type="date" value="now" pattern="yyyy-MM-dd HH:mm:ss Z" />
|
|
<entry key="${project.artifactId}.commitDate" value="${commitDate}" />
|
|
<entry key="${project.artifactId}.shortCommitHash" value="${shortCommitHash}" />
|
|
<entry key="${project.artifactId}.longCommitHash" value="${longCommitHash}" />
|
|
<entry key="${project.artifactId}.repoStatus" value="${repoStatus}" />
|
|
</propertyfile>
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.ant</groupId>
|
|
<artifactId>ant</artifactId>
|
|
<version>1.8.2</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.ant</groupId>
|
|
<artifactId>ant-launcher</artifactId>
|
|
<version>1.8.2</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ant-contrib</groupId>
|
|
<artifactId>ant-contrib</artifactId>
|
|
<version>1.0b3</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>ant</groupId>
|
|
<artifactId>ant</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
</plugins>
|
|
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>1.3.1</version>
|
|
<dependencies>
|
|
<!-- Provides the 'requireFilesContent' enforcer rule. -->
|
|
<dependency>
|
|
<groupId>com.ceilfors.maven.plugin</groupId>
|
|
<artifactId>enforcer-rules</artifactId>
|
|
<version>1.1.0</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<!-- keep surefire and failsafe in sync -->
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>2.15</version>
|
|
</plugin>
|
|
<!-- keep surefire and failsafe in sync -->
|
|
<plugin>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
<version>2.15</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>2.5</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<version>2.6</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>2.4</version>
|
|
<executions>
|
|
<execution>
|
|
<id>default-jar</id>
|
|
<configuration>
|
|
<archive>
|
|
<manifest>
|
|
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
|
</manifest>
|
|
<index>true</index>
|
|
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
|
|
</archive>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>2.8</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>2.4</version>
|
|
</plugin>
|
|
<plugin>
|
|
<!-- Do NOT upgrade -->
|
|
<artifactId>maven-jxr-plugin</artifactId>
|
|
<version>2.2</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<version>1.7</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>ant-contrib</groupId>
|
|
<artifactId>ant-contrib</artifactId>
|
|
<version>1.0b3</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>ant</groupId>
|
|
<artifactId>ant</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<version>1.8</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<version>1.2.1</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.fusesource.hawtjni</groupId>
|
|
<artifactId>maven-hawtjni-plugin</artifactId>
|
|
<version>1.10</version>
|
|
</plugin>
|
|
|
|
<!-- Workaround for the 'M2E plugin execution not covered' problem.
|
|
See: http://wiki.eclipse.org/M2E_plugin_execution_not_covered -->
|
|
<plugin>
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
<version>1.0.0</version>
|
|
<configuration>
|
|
<lifecycleMappingMetadata>
|
|
<pluginExecutions>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<versionRange>[1.7,)</versionRange>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore />
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<versionRange>[1.0,)</versionRange>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<execute>
|
|
<runOnIncremental>false</runOnIncremental>
|
|
</execute>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<versionRange>[1.0,)</versionRange>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<execute>
|
|
<runOnIncremental>false</runOnIncremental>
|
|
</execute>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<versionRange>[1.0,)</versionRange>
|
|
<goals>
|
|
<goal>clean</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<execute>
|
|
<runOnIncremental>false</runOnIncremental>
|
|
</execute>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.felix</groupId>
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
|
<versionRange>[2.4,)</versionRange>
|
|
<goals>
|
|
<goal>manifest</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore />
|
|
</action>
|
|
</pluginExecution>
|
|
</pluginExecutions>
|
|
</lifecycleMappingMetadata>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
</project>
|
|
|