When developing your Own PAK Components you might wish to deploy them to your own Maven Repository. This Guide is intended to show you how it should be configured to avoid issues. It is crucial to understand that a Maven Repository is essentially part of the PAK infrastructure when using Web-Components like MavenCommandCollector or MavenCommandPool(default).

1. Index

In Order for PAK to find your Commands and Services you will need to publish an index. Commands will be searched and resolved by the Editor, while the WorkflowAutomationApp will need to search and resolve Services.

In short, you need to:

  • publish an index for any Repository where Commands and Services should be found(including mirrors)

  • publish no index for mirrors to public Repositories or other big Repositories where Commands and Services should not be found (e. g. Maven Central)

You can use Group Repositories to allow downloading Components from multiple sources. You might choose to include a mirror e. g. asap/maven-public for Commands and Services from ASAP. (index needs to be (re)published aswell) Including mirrors to well established public repositories like maven-central in a group Repository is recommended, because you probably need transitive Dependencies from open source projects. However, mirroring their index not only introduces security concerns but will also slow down runtime component resolution immensely.

2. Checking whether an index is present

The index will be in the root directory of your Repository under .index/nexus-maven-repository-index.gz and .index/nexus-maven-repository-index.properties. Please note that “nexus” in the Name exists because the de facto standard for creating maven indices was formerly known as Sonatype Nexus Indexer. If you previously created indices erroneously you need to delete these files.

3. Sonatype Nexus

In Sonatype Nexus you can create an indexing task via Administration → System → Tasks → Create Task → publish maven indexer files

The important thing to select is which repository to publish the indexer files for and how often. You need to create one such task per relevant Repository. (including group repositories)

maven task config

4. JFrog Artifactory

In JFrog Artifactory you can create an indexing task via Admin → Services → Maven Indexer. There is only one such task per Artifactory instance. You can select when it will run and which repositories to index.

maven indexer config