We’ve been publishing a series of tips on managing open source development to maximize benefits and minimize the risks. In case you missed them, you can find the other posts in the series here and a summary of the entire set of tips here. In today’s post, we continue with a tip on choosing open source components to ensure quality and avoid unnecessary license or security risk.
There are over 30,000 unique open source components available in the Central Repository to choose from. More often than not you’ll have multiple choices for any given need, making it hard to choose. Here are a few things to consider when evaluating components.
Analyze the component’s dependencies to discover hidden security or license issues. For each open source component you include, there are often dozens of other components it depends upon. Any of these included components may have a hidden security risk or be licensed inappropriately for your application. The figure provides an example of this situation. The complexity of Java dependencies make it difficult to know what your applications are truly made of without using automated tools.
Following these guidelines will help you choose better components and avoid risk. This work is not always easy, but it’s important when you’re building critical apps. We created Sonatype Insight to help you perform these tasks faster and more efficiently. Insight provides the component information you need in your existing development tools.