May 28, 2015 / by Daniel Huchthausen / In EcoSystem

SCM-Manager Universe Tools Part 4: Sonatype Nexus

+++This post was migrated from our former blog about SCM-Manager Universe. Therefore, the design is slightly different and some information might not be 100% applicable to Cloudogu EcoSystem. So don't be alarmed; enjoy reading.+++

Sonatype Nexus is a repository manager that serves as a central point for managing binary software components and their dependencies. In SCM-Manager Universe we use Nexus in combination with Apache Maven to manage dependencies.

Sonatype Nexus

There are two different versions of Sonatype Nexus: 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.

Profile

Topic Options
Name Sonatype Nexus
Website http://www.sonatype.org/nexus/
Initial release 2008
Operating system Cross-platform
Type Repository Manager
Written in Java
License Eclipse Public License Version 1.0
Number of contributors 37
Number of branches 18

Purpose

Sonatype Nexus 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

Sonatype Nexus and SCM-Manager Universe

In SCM-Manager Universe Sonatype Nexus is installed with it’s default configuration. It is part of the SingleSignOn system and you can reach it via the Warp Menu. By default there is no special configuration, because the usage of Sonatype Nexus 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 Sonatype Nexus for the dependencies you are using in your projects:

Method Pros Cons
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 SCM-Manager Universe we showed how you can use Sonatype Nexus 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 Sonatype Nexus.

Conclusion

Sonatype Nexus 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.

With kind regards,
your SCM-Manager Universe Team


Daniel Huchthausen

- Consultant -

When he is not exploring the wilderness, Daniel keeps himself busy with topics such as quality assurance, testing and PM methods.

©2018 Cloudogu GmbH. All rights reserved. Legal Notice | Privacy Policy

Cloudogu™, Cloudogu EcoSystem™ and the Cloudogu™ logo are registered trademarks of Cloudogu GmbH, Germany.