https://github.com/xwiki/xwiki-commons
Raw File
Tip revision: 9940c1439a848c250c939c16fbb0d5767fabd1a3 authored by Sergiu Dumitriu on 23 November 2011, 22:16:32 UTC
[maven-release-plugin] prepare release xwiki-commons-3.3-milestone-2
Tip revision: 9940c14
pom.xml
<?xml version="1.0" encoding="UTF-8"?>

<!--
 *
 * See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 *
-->

<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>
  <groupId>org.xwiki.commons</groupId>
  <artifactId>xwiki-commons</artifactId>
  <name>XWiki Commons - Parent POM</name>
  <packaging>pom</packaging>
  <version>3.3-milestone-2</version>
  <description>A collaborative development platform runtime based on the wiki paradigm</description>
  <!-- This special URL automatically finds the correct documentation page for the module based on the passed id .
       It allows to have a single URL definition in this top level POM and still get valid website URLs for all
       mddules. -->
  <url>http://extensions.xwiki.org?id=${project.groupId}:${project.artifactId}&amp;path=</url>
  <inceptionYear>2004</inceptionYear>
  <properties>
    <!-- Define it here because we can't use ${project.version} for plugins and it's useful for
         commons children anyway -->
    <commons.version>3.3-milestone-2</commons.version>

    <!-- The previous stable version of this project, used to catch API breakages. -->
    <!-- TODO: Change to 3.2 final when released -->
    <xwiki.clirr.previous.version>3.2</xwiki.clirr.previous.version>
    <xwiki.clirr.skip>false</xwiki.clirr.skip>

    <!-- By default Checkstyle and Clirr are on -->
    <xwiki.checkstyle.skip>false</xwiki.checkstyle.skip>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <licenses>
    <license>
      <name>LGPL 2.1</name>
      <url>http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <issueManagement>
    <system>jira</system>
    <url>http://jira.xwiki.org/jira/browse/XCOMMONS</url>
  </issueManagement>
  <developers>
    <!-- Fake Developer to satisfy Maven Central requirements. We prefer to list developers and contributors on our
         wiki at http://dev.xwiki.org/xwiki/bin/view/Community/HallOfFame -->
    <developer>
      <id>devs</id>
      <name>XWiki Development Team</name>
    </developer>
  </developers>
  <organization>
    <name>XWiki</name>
    <url>http://xwiki.org/</url>
  </organization>
  <scm>
    <connection>scm:git:git://github.com/xwiki/xwiki-commons.git</connection>
    <developerConnection>scm:git:git@github.com:xwiki/xwiki-commons.git</developerConnection>
    <url>https://github.com/xwiki/xwiki-commons/tree/master/</url>
  </scm>
  <mailingLists>
    <mailingList>
      <name>XWiki Users List</name>
      <post>users@xwiki.org</post>
      <subscribe>http://lists.xwiki.org/mailman/listinfo/users</subscribe>
      <unsubscribe>http://lists.xwiki.org/mailman/listinfo/users</unsubscribe>
      <archive>http://lists.xwiki.org/pipermail/users/</archive>
      <otherArchives>
        <otherArchive>http://xwiki.markmail.org/</otherArchive>
        <otherArchive>http://www.nabble.com/XWiki-f2563.html</otherArchive>
        <otherArchive>http://gmane.org/find.php?list=xwiki</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>XWiki Developers List</name>
      <post>devs@xwiki.org</post>
      <subscribe>http://lists.xwiki.org/mailman/listinfo/devs</subscribe>
      <unsubscribe>http://lists.xwiki.org/mailman/listinfo/devs</unsubscribe>
      <archive>http://lists.xwiki.org/pipermail/devs/</archive>
      <otherArchives>
        <otherArchive>http://xwiki.markmail.org/</otherArchive>
        <otherArchive>http://www.nabble.com/XWiki-f2563.html</otherArchive>
        <otherArchive>http://gmane.org/find.php?list=xwiki</otherArchive>
      </otherArchives>
    </mailingList>
  </mailingLists>
  <dependencyManagement>
    <!-- Standard dependencies used in several XWiki build modules. Ensures all modules
         use the same version for these dependencies -->
    <dependencies>
      <!-- Apache Commons -->
      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.1</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.0.1</version>
      </dependency>
      <dependency>
        <groupId>commons-net</groupId>
        <artifactId>commons-net</artifactId>
        <version>3.0</version>
      </dependency>
      <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
      </dependency>
      <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.3</version>
      </dependency>
      <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.2</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.5</version>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.8.3</version>
      </dependency>
      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.7</version>
      </dependency>

      <!-- Everybody logs -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.4</version>
      </dependency>
      <!-- SLF4J implementation we use -->
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.0</version>
      </dependency>
      <!-- External libraries using Commons Logging will delegate to SLF4J -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.6.4</version>
      </dependency>
      <!-- External libraries using Log4J will delegate to SLF4J -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>1.6.4</version>
      </dependency>

      <!-- Everybody tests -->
      <!-- Note: We're using junit-dep and not junit because the junit artifact bundles the Hamcrest jar, leading to
           JAR Classloader hell with incompatible versions between the Hamcrest version bundled in JUnit and the
           version used by JMock. See http://jira.xwiki.org/jira/browse/XPOM-5 -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit-dep</artifactId>
        <version>4.8.2</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>1.1</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jmock</groupId>
        <artifactId>jmock</artifactId>
        <version>2.5.1</version>
      </dependency>
      <dependency>
        <groupId>org.jmock</groupId>
        <artifactId>jmock-junit4</artifactId>
        <version>2.5.1</version>
        <exclusions>
          <!-- Exclude JUnit since JMock draws an oldish version of JUnit and we wish to use a newer one -->
          <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit-dep</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jmock</groupId>
        <artifactId>jmock-legacy</artifactId>
        <version>2.5.1</version>
      </dependency>

      <!-- Most plugins depend on the servlet API -->
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <!-- Note: The 2.4 version is not technically correct as 2.4 corresponds to a specification
             # and is not an implementation version. The central repo would need to be fixed... -->
        <version>2.4</version>
        <!-- It should always be provided, otherwise containers will complain about it. -->
        <scope>provided</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>
      <!-- Ensure that we lock down all plugin versions -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <!-- Lock down plugin version for build reproducibility -->
        <version>1.0.1</version>
        <executions>
          <execution>
            <id>enforce-plugins</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requirePluginVersions>
                  <message>Best Practice is to always define plugin versions!</message>
                  <banLatest>false</banLatest>
                  <banRelease>false</banRelease>
                  <banSnapshots>false</banSnapshots>
                </requirePluginVersions>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>enforce-correct-junit-dependency</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <message>
Use the junit-dep artifact instead of the junit one which wrongly bundles hamcrest
(see http://jira.xwiki.org/jira/browse/XPOM-5)
                  </message>
                  <excludes>
                    <exclude>junit:junit</exclude>
                  </excludes>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>enforce-jcl-log4j-isolation</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <searchTransitive>false</searchTransitive>
                  <message>
XWiki uses SLF4J for logging. Don't use Commons Logging or Log4J.
                  </message>
                  <excludes>
                    <exclude>commons-logging:commons-logging</exclude>
                    <exclude>log4j:log4j</exclude>
                  </excludes>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.8</version>
          <configuration>
            <consoleOutput>true</consoleOutput>
            <!-- We use this to disable checkstyle when the clover profile is executed since there's a
                 conflict between checkstyle and clover. Namely the clovered code doesn't pass our
                 checkstyle rules -->
            <skip>${xwiki.checkstyle.skip}</skip>
          </configuration>
        </plugin>
        <!-- Used to check/update license headers -->
        <plugin>
          <groupId>com.mycila.maven-license-plugin</groupId>
          <artifactId>maven-license-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.9.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.2.1</version>
        </plugin>
        <plugin>
          <!-- Since 2.0-beta-9 maven-release-plugin uses remote tagging by default. Remote tagging implies that SCM
               information is not fetched from the local working copy but from the SCM pom configuration. This forces
               us to specify SCM configuration in every module which has its own lifecycle. Inheritance can't be used
               for SCM configuration since a released parent pom contains SCM information about its tag and not about
               the trunk. We could have globally set remoteTagging to false but we haven't since it would have
               prevented us from using SVN 1.5. We also prefer to follow maven conventions as much as possible. -->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.2.1</version>
          <configuration>
            <!-- By default the release plugin will execute the "clean" and "verify" goals but won't perform an
                 "install". This is causing problems since several modules will fail to build during release:prepare.
                 See http://tinyurl.com/354vwe for more details. Thus we're forcing the execution of the "install"
                 goal. -->
            <preparationGoals>clean install</preparationGoals>
            <!-- Avoid site generation during the release:perform to speed up release process -->
            <goals>deploy</goals>
            <mavenExecutorId>forked-path</mavenExecutorId>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.4.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.3.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.3.2</version>
          <configuration>
            <source>1.6</source>
            <target>1.6</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.10</version>
          <!-- XWiki rule is to put test in *Test classes -->
          <configuration>
            <includes>
              <include>**/*Test.class</include>
            </includes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.3.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.1.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.7</version>
          <!-- We're deploying using the SCP protocol so we need the SSH Wagon for Maven 3 to work -->
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.wagon</groupId>
              <artifactId>wagon-ssh</artifactId>
              <version>1.0-beta-7</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>aspectj-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <!-- TODO: Using 1.3.1 version doesn't work. -->
          <version>1.3</version>
          <configuration>
            <source>1.6</source>
            <target>1.6</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-invoker-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.8</version>
        </plugin>
        <plugin>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>maven-jetty-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>6.1.11</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>xml-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.0</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.izpack</groupId>
          <artifactId>izpack-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.0-alpha-4</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.7</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.2</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>sablecc-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.3</version>
          <executions>
            <execution>
              <id>clirr-check</id>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <comparisonVersion>${xwiki.clirr.previous.version}</comparisonVersion>
            <skip>${xwiki.clirr.skip}</skip>
            <excludes>
              <exclude>**/internal/**</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-archetype-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.3.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.3.5</version>
        </plugin>
        <plugin>
          <groupId>com.atlassian.maven.plugins</groupId>
          <artifactId>maven-clover2-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>3.1.0</version>
          <configuration>
            <license><![CDATA[qMMmoWpgqUnIUUslQCCkHArdnnrCaAmCJwHJQSxBxKtXsI
mi2K5DKKCB6NcT1JsMzl8KbR2KsRSMhv4kKAw73vcpeScU
PrmNWuONRNMnMoPnQRMWWNQPqnnrqRmMrqTuWtUVwStROo
PrnmqmUUnounqquummmmmUUnounqquummmmmUUONfhfUUn
mmmm]]></license>
            <!-- For some reason there's currently a problem in the Rendering Include Macro test execution when
                 IncludeMacroTest is clovered. Needs to be investigated. -->
            <includesTestSourceRoots>false</includesTestSourceRoots>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.5.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.0-beta-2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>2.8</version>
          <configuration>
            <!-- Always exclude the internal package since it's not user-public -->
            <excludePackageNames>*.internal.*</excludePackageNames>
            <!-- Make sure javadoc has enough memory -->
            <maxmemory>300m</maxmemory>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>3.0-beta-3</version>
          <!-- Site Plugin doesn’t automatically pull the Apache Wagon SSH implementation which is needed for
               site:deploy goal when using SCP protocol. -->
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.wagon</groupId>
              <artifactId>wagon-ssh</artifactId>
              <version>1.0-beta-7</version>
            </dependency>
          </dependencies>
          <configuration>
            <reportPlugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                  <!-- Since contacting the Maven Repositories can take a very long time, tell the plugin not to display
                       the repository locations of the dependencies in the report. -->
                  <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                </configuration>
                <reports>
                  <report>summary</report>
                  <report>index</report>
                  <report>dependencies</report>
                  <report>dependency-convergence</report>
                  <report>mailing-list</report>
                  <report>issue-tracking</report>
                  <report>scm</report>
                </reports>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                  <!-- Always exclude the internal package since it's not user-public -->
                  <excludePackageNames>*.internal.*</excludePackageNames>
                  <!-- Make sure javadoc has enough memory -->
                  <maxmemory>300m</maxmemory>
                </configuration>
                <!-- Don't generate test javadoc -->
                <reports>
                  <report>javadoc</report>
                </reports>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.5.1</version>
              </plugin>
            </reportPlugins>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>1.5</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <profile>
      <!-- Profile used when the release plugin executes. We want javadocs and source jars to be released
           + ensure we sign files using GPG. -->
      <id>release</id>
      <activation>
        <property>
          <!-- This property is automatically defined by the Maven release plugin when executing
               a release. Thus this profile will be automatically enabled when releasing -->
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-java</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireJavaVersion>
                      <message>You must release with Java 6!</message>
                      <version>[1.6,1.7)</version>
                    </requireJavaVersion>
                  </rules>
                </configuration>
              </execution>
              <!-- Make sure we have Javadoc JARs since this is a requirement for being able to be on Maven Central.
                   Note that running the Javadoc plugin's JAR mojo doesn't ensure this since we exclude "internal"
                   packages from Javadoc generation and modules having only classes in the "internal" package would
                   not by default generate a Javadoc JAR so we need to add some tricks to ensure they get one. This
                   check is here is to make sure we can release to Maven Central without any doubt.
                   When http://jira.codehaus.org/browse/MJAVADOC-329 is fixed, remove these checks -->
              <execution>
                <id>enforce-javadoc-exists</id>
                <phase>verify</phase>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <evaluateBeanshell>
                      <condition>("${project.packaging}" != "jar") || ("${project.packaging}" == "jar" &amp;&amp; new java.io.File("${project.build.directory}/${project.build.finalName}-javadoc.jar").exists())</condition>
                      <message>Missing Javadoc JAR</message>
                    </evaluateBeanshell>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <!-- Because of http://jira.codehaus.org/browse/MJAVADOC-329 we need to find a workaround to create a Javadoc
               JAR to satisfy the Maven Central Repository requirements. We do this by creating an apidocs/ dir in the
               target directory.
               Note that even though this "hack" is only needed for java projects having all their sources in the
               internal packages we put it here in the top level POM to not have to duplicate it at lots of places. -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <!-- The Javadoc JAR plugin runs in the package phase so we need a phase before that -->
                <phase>generate-resources</phase>
                <configuration>
                  <target>
                    <mkdir dir="${project.build.directory}/apidocs" />
                  </target>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- Warning: Clover 3.0.2 doesn't seem to work with Maven 3.0. It works with Maven 2.2.x though -->
    <!-- To generate Clover reports, see http://dev.xwiki.org/xwiki/bin/view/Community/Testing#HTestCoverage -->
    <profile>
      <id>clover</id>
      <properties>
        <!-- We need to skip checkstyle execution since otherwise it conflicts with Clover -->
        <xwiki.checkstyle.skip>true</xwiki.checkstyle.skip>
        <!-- Skip Clirr since we don't need it when computing test coverage and it speeds up the build not to run it -->
        <xwiki.clirr.skip>true</xwiki.clirr.skip>
      </properties>
    </profile>
    <!-- Profile for m2eclipse which is used for:
         1) Tell m2eclipse to use a different output directory
    -->
    <profile>
      <id>m2e</id>
      <properties>
        <m2BuildDirectory>target-eclipse</m2BuildDirectory>
      </properties>
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <build>
        <directory>${m2BuildDirectory}</directory>
      </build>
    </profile>
  </profiles>
  <distributionManagement>
    <site>
      <id>maven.xwiki.org</id>
      <url>scp://maven.xwiki.org/home/maven/public_html/site</url>
    </site>
    <repository>
      <id>maven.xwiki.org</id>
      <name>XWiki Maven2 Remote Repository for Releases</name>
      <url>scp://maven.xwiki.org/home/maven/public_html/releases</url>
    </repository>
    <snapshotRepository>
      <id>maven.xwiki.org</id>
      <name>XWiki Maven2 Development Repository for Snapshots</name>
      <url>scp://maven.xwiki.org/home/maven/public_html/snapshots</url>
    </snapshotRepository>
  </distributionManagement>
  <modules>
    <module>xwiki-commons-tools</module>
    <module>xwiki-commons-pom</module>
    <module>xwiki-commons-core</module>
  </modules>
</project>
back to top