To start working with Hex, see Get Started with Hex Repositories
To configure your Hex package manager client to work through Artifactory, see Set Me Up - Hex Client
Hex is a package manager for the BEAM ecosystem. It supports any programming language that compiles to run on the BEAM VM, such as Elixir and Erlang. For more information, see the Hex documentation.
Hex repository in Artifactory is a repository type specifically designed to handle Hex packages, which contain packages, resources, and metadata for use in Elixir and Erlang projects.
Benefits of Hex in Artifactory
Centralized Management: Store and manage all your Hex packages in one place, making it easier to track dependencies and versions.
Consistent Builds: Ensure developers and CI/CD systems use the same package versions, promoting reproducibility and consistency.
Improved Performance: Cache packages from remote repositories to speed up builds and reduce external network calls.
Fine-Grained Access Control: Control who can upload, download, and view packages, enhancing security and governance over your dependencies.
Reliability: Local caching of remote packages ensures your build process continues even if external services, like Hex.pm, are unavailable.
Hex Supported Clients
Hex repository supports the following and has been tested. It lists the specific compatible versions to ensure smooth integration and optimal performance when working with Hex Repositories in Artifactory.
Hex: Versions 2.1.1 and above
Elixir: Versions 1.16 and above
Open Telecom Platform (OTP): Versions 26.2.5 and above
Limitations of Hex in Artifactory
The following are the limitations of Hex in Artifactory:
Mix Client:
Single Repository Limitation: The Mix client allows only one repository to point to
repo.hex.pm
. As a result, you can only set one Artifactory endpoint as the default repository that connects to the publichex.pm
registry. In the future, this will be resolved by the Hex Virtual Repository which will aggregate all packagesRepository Naming: The name of your self-hosted Hex repository in the Mix client must exactly match the full URL of the Artifactory remote repository.
Hex Server:
Private Package Support: Self-hosted Hex servers do not support private organizations or private packages. This feature is only available through the public
hex.pm
registry, which offers private hosted repositories.
Hex Local Repository:
We currently support using local repositories for storing first-party (internal) and second-party (partner) packages.
parsing any info related to docs, tests, etc.; from
mix.exs
is not supported.mix hex.publish
command to publish packages to local repository is not supported.Workaround: Deploy Hex Packages to Hex Local Repository
deploying packages under any other directory except tarballs is not supported. To learn more, refer to Hex Repository Layout and Permission.
Hex Remote Repository: We currently support using remote repositories for caching third-party packages from registries, such as hex.pm.
Repository Browsing: Artifactory does not support browsing Hex remote registries. The artifact tree only shows packages explicitly pulled into Artifactory, not the contents of the remote registry.