File System resolver

Tagfilesystem
Handle latestyes
Handle publishyes

This resolver uses the file system to resolve ivy files and artifacts. It presents the advantage to usually have very good performances. Moreover, it is easy to setup using basic OS file sharing mechanism.

The configuration of such a resolver is mainly done through ivy and artifact patterns, indicating where ivy files and artifacts can be found in the file system. These patterns must be absolute paths (since 2.0). You can indicate a list of pattern which will be checked one after the other.

since 1.3 Using the m2compatible attribute, this resolver will convert dots found in organisation in slashes like maven2 does for groupId. For instance, it will transform the organisation from 'com.company' into 'com/company' when replacing the token [organisation] in your pattern.
Limitation: in m2compatible mode, this resolver is not able list available organizations. It means some features like repreport are not available.

Atomic publish support

since 2.0 This resolver supports atomic publish, which is very suitable for environments with a lot of concurrent publish and resolve. The atomic publish relies on the atomicity of the rename operation in the underlying filesystem (which includes NTFS and POSIX based filesystems).
In this case the resolver starts by publishing the module according to the pattern, but where a '.part' suffix is appended to the revision. Then the publish is committed with a rename to the final location.

Limitations
Atomic publish is currently limited in several ways:
  • you need to use a pattern for both the artifact and the ivy files which uses the revision as a directory. For instance "${repository.dir}/[module]/[revision]/[artifact].[ext]" works, "${repository.dir}/[module]/[artifact]-[revision].[ext]" doesn't
  • both the artifact and ivy pattern should have the same prefix until the [revision] token.
  • overwrite during publish is not supported
  • you should not use revision names ending with '.part'
The transactional attribute can be used to configure the atomicity behavior:
  • auto
  • use transaction if possible (according to limitation), otherwise don't
  • true
  • always use transaction, fail the build if a limitation is not fulfilled
  • false
  • don't use transaction at all

Attributes

This resolver shares the common attributes of standard resolvers.
AttributeDescriptionRequired
m2compatibleTrue if this resolver should be maven2 compatible, false otherwise since 1.3 No, defaults to false
localTrue if this resolver should be considered local, false otherwise since 1.4. See useOrigin attribute on the caches element for details. No, defaults to true
transactionaltrue to force the use of transaction, false to prevent the use of transaction, auto to get transaction when possible since 2.0. See above for details. No, defaults to auto

Child elements

ElementDescriptionCardinality
ivydefines a pattern for ivy files, using the pattern attribute 0..n
artifactdefines a pattern for artifacts, using the pattern attribute 1..n