Extension Repository Connector - Maven

Last modified by Admin on 2018/06/20 00:41

cogAllows accessing extensions located in a Maven repository
TypeJAR
Developed by

XWiki Development Team

Active Installs0
Rating
Rate!
0 Votes
LicenseGNU Lesser General Public License 2.1
Bundled With

XWiki Enterprise, XWiki Standard

Installable with the Extension Manager

Description

Allows to download extensions coming from a Maven repository.

Properties

KeyVersionValueDescription
auth.user4.3M1A user idThe user to use to authenticate to the maven repository
auth.password4.3M1A passwordThe password to use to authenticate to the maven repository

Since 8.3 all Aether RepositorySystemSession configuration properties are supported. They usually are prefixed with "aether.". Most of them are defined in the class org.eclipse.aether.ConfigurationProperties. For example to increase the connection timeout you can use aether.connector.connectTimeout (in milliseconds).

Difference with dependency version interpretation

Soft requirement dependencies (for example "1.0") are interpreted as "<version> is best but greater version is accepted" while in Maven it means "<version> is best but any version is accepted". This decision has been made since pretty much nobody read the specification and use it properly which mean in most projects you will see almost only soft requirements used as if they meant the minimum version (including XWiki itself). This mistake is OK in Maven context where you just build your project but it's creating a mess when installing extensions with different versions of the same dependency.

Since Extension Manager internal version syntax follow Maven syntax the handler is not doing any conversion so you can look at Extension Module versions documentation for more details.

Dependencies version conflict resolution differences

While Maven select the dependency version closer to the root, Extension Manager is choosing the greatest found version.

Optional dependencies

Since 9.6RC1 Extension Manager install by default dependencies with <optional>true</optional>.

Custom properties

It's possible to customize the pom.xml file beyond what is supported by Maven with the following custom properties:

PropertyVersionTypeDescription
xwiki.extension.name4.2M3STRINGThe extension pretty name. Overrides <name> standard Maven property.
xwiki.extension.summary4.2M3STRINGA short summary of the extension. Overrides <description> standard Maven property.
xwiki.extension.website4.2M3URLThe home page of the extension. Overrides <website> standard Maven property.
xwiki.extension.features3.2M2STRING LISTThe features provided by the extension ordered from most recent to oldest. Can be used for example to list old identifiers of the extension. Since 8.0 it can be associated to a version using the following syntax feature/version. See virtual extensions documentation for more details.
xwiki.extension.category7.0STRINGThe category (e.g. application, colortheme, skin, etc). Full default list is available here.
xwiki.extension.namespaces8.0STRING LIST

The namespaces on which the extension is allowed to be installed. The following syntaxes are supported:

  • hardcoded namespaces: namespace
      example with two namespaces: namespace1, namespace2
  • root namespace: {root}
      example with root namespace and wiki "xwiki": {root}, wiki:xwiki
  • regexp: [regexp]
      example to match all wikis starting with "wiki" and ending with a digit: [wiki:wiki\d]
xwiki.extension.jar.type9.0RC1STRINGThe type of the extension which otherwise is jar
TypeDescription
STRINGA free form string
URLA valid URL
STRING LISTComa (',') or white space (' ') separated list of free form strings. Backslash ('\') can be used as an escaping characters (including for backslash). New lines are ignored when parsing so a good practice is to put each feature on a separate line.

Custom repositories

Support for Maven <repositories> has been added in XWiki 7.3 Milestone 1. Before that it's simply ignored.

Prerequisites & Installation Instructions

We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager). Note that installing Extensions when being offline is currently not supported and you'd need to use some complex manual method.

You can also use the manual method which involves dropping the JAR file and all its dependencies into the WEB-INF/lib folder and restarting XWiki.

Dependencies

Dependencies for this extension (org.xwiki.commons:xwiki-commons-extension-repository-maven 10.5):

  • org.xwiki.commons:xwiki-commons-properties 10.5
  • org.xwiki.commons:xwiki-commons-environment-api 10.5
  • org.xwiki.commons:xwiki-commons-extension-maven 10.5
  • org.eclipse.aether:aether-api 1.1.0
  • org.eclipse.aether:aether-util 1.1.0
  • org.eclipse.aether:aether-impl 1.1.0
  • org.eclipse.aether:aether-connector-basic 1.1.0
  • org.eclipse.aether:aether-transport-http 1.1.0
  • org.eclipse.aether:aether-transport-file 1.1.0
  • org.apache.maven:maven-aether-provider 3.3.9
  • org.apache.maven:maven-core 3.3.9
  • org.eclipse.sisu:org.eclipse.sisu.plexus 0.3.3
  • javax.annotation:javax.annotation-api 1.3.2
  • com.google.inject:guice:no_aop 4.1.0
Tags:
Created by XWikiGuest on 2012/10/08 16:14
    

Get Connected