Skip to content
Snippets Groups Projects
pom.xml 19.3 KiB
Newer Older
<?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>
  <parent>
Vincent Massol's avatar
Vincent Massol committed
    <groupId>org.xwiki.platform</groupId>
    <artifactId>xwiki-platform</artifactId>
    <version>5.0-SNAPSHOT</version>
  <artifactId>xwiki-platform-core</artifactId>
  <name>XWiki Platform - Core - Parent POM</name>
  <packaging>pom</packaging>
  <description>XWiki Platform - Core - Parent POM</description>
    <gwt.version>2.5.0-rc1</gwt.version>
    <gwt.maven.plugin.version>2.5.0-rc1</gwt.maven.plugin.version>
    <smartgwt.version>3.0</smartgwt.version>
    <!-- JS/CSS minification is on by default -->
    <xwiki.minification.skip>false</xwiki.minification.skip>
      <groupId>org.xwiki.commons</groupId>
      <artifactId>xwiki-commons-test-component</artifactId>
      <version>${commons.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
Thomas Mortagne's avatar
Thomas Mortagne committed
  <dependencyManagement>
    <dependencies>
Thomas Mortagne's avatar
Thomas Mortagne committed
      <!-- Standard dependencies used in several modules -->
      <!-- Jython engine -->
      <dependency>
        <groupId>org.python</groupId>
        <artifactId>jython-standalone</artifactId>
        <version>2.5.4-rc1</version>
      <!-- Used on remote observation and also by JBossCache/Infinispan (even if it does not really use it) -->
      <dependency>
        <groupId>org.jgroups</groupId>
        <artifactId>jgroups</artifactId>
        <version>3.2.7.Final</version>
      </dependency>
      <!-- Apache Tika used by Lucene and Office modules -->
      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>1.3</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-parsers</artifactId>
        <version>1.3</version>
        <exclusions>
          <exclusion>
            <!-- Includes classes from an older version of NekoHTML preventing us from using newer versions. -->
            <groupId>de.l3s.boilerpipe</groupId>
            <artifactId>boilerpipe</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <!-- Rome is used in rss macro and feed api modules and in Tika -->
      <dependency>
        <groupId>rome</groupId>
        <artifactId>rome</artifactId>
        <version>1.0</version>
tmortagne's avatar
tmortagne committed
          <!-- Exclude JDOM since Rome depends on jdom:jdom and we want to use org.jdom:jdom -->
          <exclusion>
            <groupId>jdom</groupId>
            <artifactId>jdom</artifactId>
          </exclusion>
          <!-- We want to choose the SLF4J binding only when XWiki is packaged. -->
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging-api</artifactId>
          </exclusion>
      </dependency>
      <dependency>
        <groupId>rome</groupId>
        <artifactId>rome-fetcher</artifactId>
        <version>1.0</version>
        <!-- Exclude JDOM since Rome depends on jdom:jdom and we want to use org.jdom:jdom -->
        <exclusions>
          <exclusion>
            <groupId>jdom</groupId>
            <artifactId>jdom</artifactId>
          </exclusion>
tmortagne's avatar
tmortagne committed
          <!-- We want to choose the SLF4J binding only when XWiki is packaged. -->
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging-api</artifactId>
          </exclusion>
      <dependency>
        <!-- Replace the runtime transitive dependency we excluded above with this one which repackages the NekoHTML classes to prevent conflicts. -->
        <groupId>de.l3s.boilerpipe</groupId>
        <artifactId>boilerpipe</artifactId>
        <version>1.2.0-xwiki</version>
        <scope>runtime</scope>
      <!-- Used by several projects (HTMLCleaner, Formula renderer, etc.) directly or indirectly to do XPath and XSLT transformations -->
      <dependency>
        <groupId>xalan</groupId>
        <artifactId>xalan</artifactId>
        <version>2.7.1</version>
      </dependency>
      <!-- Used by xwiki-platform-oldcore and xwiki-platform-captcha -->
      <dependency>
        <groupId>struts</groupId>
        <artifactId>struts</artifactId>
        <version>1.2.9</version>
        <exclusions>
          <!-- There is conflict with hibernate antlr-2.7.6 dependency -->
          <exclusion>
            <groupId>antlr</groupId>
            <artifactId>antlr</artifactId>
          </exclusion>
          <!-- We use a more recent version of Xalan (see above) -->
          <exclusion>
            <groupId>xalan</groupId>
            <artifactId>xalan</artifactId>
          </exclusion>
          <!-- We want to choose the SLF4J binding only when XWiki is packaged. -->
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
      <!-- Standard dependencies used in GWT modules -->
      <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-user</artifactId>
        <version>${gwt.version}</version>
        <!-- Only needed at build time -->
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-servlet</artifactId>
        <version>${gwt.version}</version>
      </dependency>
      <dependency>
        <!-- SmartGWT is used only for its tree widget. -->
        <!-- If you remove or move this dependency don't forget to update the repository section at the bottom. -->
        <groupId>com.smartgwt</groupId>
        <artifactId>smartgwt</artifactId>
        <version>${smartgwt.version}</version>
        <!-- Only needed at build time -->
        <scope>provided</scope>
      <!-- Used at least in Solr Search and in Infinispan Cache -->
      <dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>woodstox-core-asl</artifactId>
        <version>4.1.4</version>
      </dependency>
      <!-- Drawn by several transitive dependencies -->
      <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>jta</artifactId>
        <version>1.1</version>
      </dependency>
Thomas Mortagne's avatar
Thomas Mortagne committed
    </dependencies>
  </dependencyManagement>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <!-- Use the manifest file generated by the OSGi Maven Bundle Plugin -->
              <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
            </archive>
          </configuration>
        </plugin>
          <groupId>org.xwiki.commons</groupId>
          <artifactId>xwiki-commons-tool-xar-plugin</artifactId>
          <version>${commons.version}</version>
        <plugin>
          <!-- Default configuration for the GWT maven plugin -->
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>gwt-maven-plugin</artifactId>
          <version>${gwt.maven.plugin.version}</version>
          <!-- We declare these dependencies here in case we use different value for ${gwt.version} and
               ${gwt.maven.plugin.version} variables.
               See http://mojo.codehaus.org/gwt-maven-plugin/user-guide/using-different-gwt-sdk-version.html -->
          <dependencies>
            <dependency>
              <groupId>com.google.gwt</groupId>
              <artifactId>gwt-user</artifactId>
              <version>${gwt.version}</version>
            </dependency>
            <dependency>
              <groupId>com.google.gwt</groupId>
              <artifactId>gwt-dev</artifactId>
              <version>${gwt.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <mode>htmlunit</mode>
            <testTimeOut>600</testTimeOut>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>test</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <!--
              We exclude the GWT client tests because of http://jira.codehaus.org/browse/SUREFIRE-508 (Cannot run
              GWTTestCases with Surefire). GWT client tests are currently run by gwt-maven-plugin.
            -->
            <excludes>
              <exclude>**/gwt/**/client/**/*.java</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.atlassian.maven.plugins</groupId>
          <artifactId>maven-clover2-plugin</artifactId>
          <configuration>
            <!--
              Exclude GWT client code since otherwise it would mean they would get instrumented by Clover and GWT would
              complain that it doesn't find the sources for Clover at runtime.
            -->
            <excludes>
              <exclude>**/gwt/**/client/**/*.java</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>net.alchim31.maven</groupId>
          <artifactId>yuicompressor-maven-plugin</artifactId>
          <version>1.3.2</version>
          <configuration>
            <skip>${xwiki.minification.skip}</skip>
            <jswarn>false</jswarn>
            <!-- Overwrite the resource files with the minimized version. -->
            <nosuffix>true</nosuffix>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <!-- Generate OSGi Manifest information to all XWiki Core JARs -->
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <executions>
          <execution>
            <id>bundle-manifest</id>
            <phase>process-classes</phase>
            <goals>
              <goal>manifest</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>clirr-maven-plugin</artifactId>
        <configuration>
          <!-- List of specific CLIRR excludes. Example:

tmortagne's avatar
tmortagne committed
            <difference>
              <className>org/xwiki/ircbot/IRCBot</className>
              <method>void initialize(java.lang.String)</method>
              <differenceType>7012</differenceType>
              <justification>IRCBot is still a young API. Added a new initialize() method to support installing the
                IRC Bot application in a subwiki</justification>
            </difference>
tmortagne's avatar
tmortagne committed
               See http://mojo.codehaus.org/clirr-maven-plugin/examples/ignored-differences.html
            <!-- Remove the following ignores after we release the current version as final -->
tmortagne's avatar
tmortagne committed
            <difference>
              <className>com/xpn/xwiki/XWiki</className>
              <method>com.xpn.xwiki.XWikiContext ajc$privMethod$com_xpn_xwiki_XWikiCompatibilityAspect$com_xpn_xwiki_XWiki$getXWikiContext()</method>
              <differenceType>7002</differenceType>
              <justification>
                * The XWikiCompatibilityAspect aspect class had a method (flushCache()) calling the private getXWikiContext() method from XWiki.java
                * This private method has been removed from XWiki.java
                * AspectJ needs to add a public proxy method in XWiki.java (it names it: public XWikiContext ajc$privMethod$com_xpn_xwiki_XWikiCompatibilityAspect$com_xpn_xwiki_XWiki$getXWikiContext())
                  so that it can call it from XWikiCompatiblityAspect.class with:

                  public static void ajc$interMethod$com_xpn_xwiki_XWikiCompatibilityAspect$com_xpn_xwiki_XWiki$flushCache(XWiki ajc$this_)
                  {
                    ajc$this_.flushCache(ajc$this_.ajc$privMethod$com_xpn_xwiki_XWikiCompatibilityAspect$com_xpn_xwiki_XWiki$getXWikiContext());
                  }
                * Thus we need to exclude it now that we've removed this getXWikiContext() ;)
              </justification>
tmortagne's avatar
tmortagne committed
            </difference>
          <excludes>
            <exclude>**/internal/**</exclude>
            <!-- Remove the following excludes after we release the current version as final -->
            <!-- Remove dependency on Portlet API from old core -->
            <exclude>com/xpn/xwiki/web/XWikiForm</exclude>
            <exclude>com/xpn/xwiki/web/XWikiPortlet</exclude>
            <exclude>com/xpn/xwiki/web/XWikiPortletContext</exclude>
            <exclude>com/xpn/xwiki/web/XWikiPortletRequest</exclude>
            <exclude>com/xpn/xwiki/web/XWikiPortletResponse</exclude>
            <exclude>com/xpn/xwiki/web/XWikiPortletURLFactory</exclude>
            <exclude>com/xpn/xwiki/web/XWikiRequest</exclude>
            <exclude>com/xpn/xwiki/web/XWikiResponse</exclude>
            <exclude>com/xpn/xwiki/web/XWikiServletRequest</exclude>
            <exclude>com/xpn/xwiki/web/XWikiServletRequestStub</exclude>
            <exclude>com/xpn/xwiki/web/XWikiServletResponse</exclude>
            <exclude>com/xpn/xwiki/web/XWikiServletResponseStub</exclude>
            <exclude>com/xpn/xwiki/gwt/api/server/XWikiRequestWrapper</exclude>
            <exclude>com/xpn/xwiki/plugin/scheduler/XWikiServletRequestStub</exclude>
            <exclude>com/xpn/xwiki/plugin/scheduler/XWikiServletResponseStub</exclude>
          </excludes>
        </configuration>
      </plugin>
      <!-- Needed to add support for the "xar" packaging -->
        <groupId>org.xwiki.commons</groupId>
        <artifactId>xwiki-commons-tool-xar-handlers</artifactId>
        <version>${commons.version}</version>
  <modules>
Vincent Massol's avatar
Vincent Massol committed
    <!-- Sorted Alphabetically -->
    <module>xwiki-platform-activitystream</module>
    <module>xwiki-platform-administration</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-annotations</module>
    <module>xwiki-platform-application-manager</module>
    <module>xwiki-platform-appwithinminutes</module>
    <module>xwiki-platform-autotag</module>
    <module>xwiki-platform-blog</module>
    <module>xwiki-platform-bridge</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-cache</module>
    <module>xwiki-platform-captcha</module>
    <module>xwiki-platform-chart</module>
    <module>xwiki-platform-classloader</module>
    <module>xwiki-platform-colibri</module>
    <module>xwiki-platform-colorthemes</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-component</module>
    <module>xwiki-platform-configuration</module>
    <module>xwiki-platform-containers</module>
    <module>xwiki-platform-crypto</module>
    <module>xwiki-platform-csrf</module>
    <module>xwiki-platform-dashboard</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-eventstream</module>
    <module>xwiki-platform-extension</module>
    <module>xwiki-platform-faq</module>
    <module>xwiki-platform-feed</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-formula</module>
    <module>xwiki-platform-git</module>
    <module>xwiki-platform-groovy</module>
    <module>xwiki-platform-gwt</module>
    <module>xwiki-platform-invitation</module>
    <module>xwiki-platform-ircbot</module>
    <module>xwiki-platform-jodatime</module>
    <module>xwiki-platform-ldap</module>
    <module>xwiki-platform-linkchecker</module>
    <module>xwiki-platform-livetable</module>
tmortagne's avatar
tmortagne committed
    <module>xwiki-platform-localization</module>
    <module>xwiki-platform-logging</module>
    <module>xwiki-platform-mailsender</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-messagestream</module>
    <module>xwiki-platform-model</module>
    <module>xwiki-platform-observation</module>
    <module>xwiki-platform-office</module>
    <module>xwiki-platform-oldcore</module>
    <module>xwiki-platform-panels</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-query</module>
    <module>xwiki-platform-refactoring</module>
    <module>xwiki-platform-rendering</module>
    <module>xwiki-platform-repository</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-rest</module>
    <module>xwiki-platform-scheduler</module>
    <module>xwiki-platform-search</module>
    <module>xwiki-platform-security</module>
    <module>xwiki-platform-selenium</module>
    <module>xwiki-platform-skin</module>
    <module>xwiki-platform-statistics</module>
    <module>xwiki-platform-store</module>
    <module>xwiki-platform-tag</module>
    <module>xwiki-platform-test</module>
    <module>xwiki-platform-user</module>
    <module>xwiki-platform-uiextension</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-url</module>
    <module>xwiki-platform-velocity</module>
    <module>xwiki-platform-watchlist</module>
tmortagne's avatar
tmortagne committed
    <module>xwiki-platform-web</module>
    <module>xwiki-platform-webdav</module>
    <module>xwiki-platform-wiki-manager</module>
    <module>xwiki-platform-workspace</module>
    <module>xwiki-platform-wysiwyg</module>
Vincent Massol's avatar
Vincent Massol committed
    <module>xwiki-platform-xml</module>
    <module>xwiki-platform-xmlrpc</module>
    <module>xwiki-platform-zipexplorer</module>
    <!-- Profile to build Legacy modules -->
      <modules>
        <module>xwiki-platform-legacy</module>
      </modules>
    </profile>
      <!-- Allows running GWT tests manually -->
      <id>gwt-test-manual</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <configuration>
              <mode>manual</mode>
              <productionMode>true</productionMode>
              <style>DETAILED</style>
              <!-- HACK: We inject the GWT arguments in the out parameter because we have no other option. -->
              <out>target/www-test -port 54321 -codeServerPort 12345</out>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>