Artipie is not just a binary artifact web server - it's an artifact management constructor, which comprises many components built into server assembly. It is an open-source project that started in 2020 and is actively growing.
Artipie supports the following types of repositories:
Docker - private Docker registry for images.
Maven - Java, Kotlin, Groovy, Scala, Clojure artifacts and dependencies of varying types like a .jar, .war, .klib and etc.
PyPI - Python packages index.
Anaconda - built packages for data science for Python, R, Lua, C, C++, etc.
RPM - .rpm packages repository for RHEL, PCLinuxOS, Fedora, AlmaLinux, CentOS, openSUSE, OpenMandriva, Oracle Linux, etc.
Gem - RubyGem hosting service for Ruby.
Go - Go package storage.
Files (binary) storage - host any files you like.
Helm - Helm charts repository.
NuGet - hosting service for .NET packages.
Debian - package repository for Debian-based Linux distributions: Ubuntu, MX Linux, Mint, Raspberry Pi OS, Parrot OS, etc.
Composer - package source for PHP packages.
But, due to we all love Java, I'll like to stay on how to create the own Maven repository with Artipie.
First, we have to get the Artipie jar file that you can find on this page https://github.com/artipie/artipie/releases. In the next step, we should define an Artipie metadata configuration that is represented by a `yaml` file. So, let's create a folder for Artipie config `/Users/username/artipie/config` and put inside this folder the `my-artipie.yaml` file with the following content:
Field `type` describes which type of storage Artipie will use to get configuration of repositories. In our case, it's `fs`— the file system storage.
Field `path` points to the directory in a file system where repositories config files will be stored.
Now, we are ready to define a maven repository config that is also represented by a 'yaml' file:
Field `type` describes a repository type, in our case it's `maven`.
Field `storage` defines a file storage that uses the local maven folder as its path.
We have to call this 'repository.yaml' file and place it in the folder '/Users/username/artipie/repo'. Artipie will use the file name as a Maven repository name.
Everything is done! We are now ready to start Artipie. Execute the following command in a terminal:
`--config-file` parameter points to the Artipie main configuration file.
`--port` parameter defines the port to start the service.
That is all. Now, you have your maven repository!
Then you may add the repository's description to ‘/.m2/settings.xml’ or add the according section to a project pom.
And use this repository as a regular remote Maven repository.