Maven Repository Manager Configuration
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 as well)
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)