Artifact management with Nexus Repository
Nexus Repository, formerly known as “Sonatype Nexus” is a repository manager that serves as a central point for managing binary software components and their dependencies. In Cloudogu EcoSystem we use Nexus in combination with Apache Maven to manage dependencies.
There are two different versions of Nexus Repository: one open source and one professional. The open source version comes with all necessary features like hosted repositories, repository groups, proxied remote repositories, artifact search and more. The professional version extends the basic functionality by features like staged releases, artifact procurement, hosting project sites or maven settings management.
Nexus Repository serves as a single point of contact for software artifacts from different origins. This leads to several benefits:
- faster and more reliable builds
- improved collaboration
- component usage visibility
- enforce components standards
- controlled sharing with partners
- ideal repository for robust governance
Nexus Repository and Cloudogu EcoSystem
In Cloudogu EcoSystem Nexus Repository is installed with it’s default configuration. It is part of the Single Sign-On system and you can reach it via the Warp Menu. By default there is no special configuration, because the usage of Nexus Repository is highly depending on the needs of your projects. You can for example proxy or mirror external repositories or host your own ones.
There are several ways to use Nexus Repository for the dependencies you are using in your projects:
|Proxing dependencies from the web.||You are always using the latest version of the dependencies.||The dependency is lost in case the link changes (if no version is specified within the POM). You are forced to adapt to all changes that are made to the dependency.|
|Mirroring dependencies from the web.||You are storing a certain version of a dependency in your Nexus, this way the version stays untouched and you can develop your project precisely with this dependency.||You are not using the latest version of dependencies.</p> You have to manually update dependencies.|
|Hosting your own dependencies or repositories.||Share dependencies that you developed on your own with other developers and deploy your projects to Nexus.||You have to implement the automated update of the repositories.|
In our blogpost about automated release management with Cloudogu EcoSystem we showed how you can use Nexus Repository to automate your software development workflows for. It is also possible to implement a continuous deployment or delivery process by using Jenkins in combination with Nexus Repository.
Try it yourself
Nexus Repository is very helpful when it comes to keeping track of dependencies versions of your projects. According to your policies regarding dependency management you can configure Nexus to fit your needs. By integrating the tool into automated processes you can implement Continuous Integration or Continuous Delivery system. Other advantages are that you prevent an uncontrolled growth of dependencies in your project, that you are independent from the availability of dependencies in the web and that your architect/release manager has a good tool to control and manage required dependencies and releases. If you want to see Nexus Repository first hand, you can simply take a look at our demo-environment:
Oct. 28th: updated post: adjusted it to Cloudogu EcoSystem and changed the name of the application.