Path Pattern Tokens

JFrog Artifactory Documentation

JFrog Artifactory
Content Type
User Guide

A path pattern is constructed of tokens (explained below), path separators ('/'), optional parentheses ('(' and ')') and literals ('.', '-', etc.). Tokens are modeled after module fields, as presented above.

Path patterns can be defined for every artifact in the repository or you can define separate path patterns for descriptor-type artifacts (such as a .pom or an ivy.xml file).

The following tokens are available:




Represents the Organization field where the levels are separated by dots ('.'), a-la Ivy. For example: "org.slf4j"


Represents the Organization field where the levels are separated by path separators ('/'), a la Maven. For example: "org/slf4j"


Represents the Base Revision field


Represents the Module field


Represents the Folder Integration Revision field


Represents the File Integration Revision field


Represents the Classifier field


Represents the Extension field


Represents the Type field


A custom token. Can be used to create a new type of token when the provided defaults are insufficient.

For example, [myIntegRev<ITEG-(?:[0-9]+)>] creates a new custom token named myIntegRev that matches the word ITEG followed by a dash and a minimum of one digit.

Custom tokens

When using custom tokens in the repository layout, make sure that the layout begins with [orgPath]/[module]. If the [module] token is missing in the layout, some REST API calls will not work.

Multiple Custom Tokens

Artifactory supports any number of custom tokens, but when provided with multiple custom tokens of the same key, Artifactory only takes into account the regular expression of the first occurrence while substituting the rest with a repetition expression (even if each occurrence has a different regular expression value.

For example:


Translates to:


Optional parts

To specify tokens or a sequence of tokens and literals as optional in the path pattern, surround the sequence with the optional parentheses '(' and ')' literals.

For example, the pattern "[module]( -[classifier])" matches both "bobs-tools-sources" and "bobs-tools", and the pattern "[baseRev](-[fileItegRev])" matches both "1.2-SNAPSHOT" and "1.2".