Java libraries search engines comparison

07.12.2015 08:10:06

Maybe you know I have a new hobby project I'm working on for six months now -, which is basically something like Google for Maven Central repository. Why I made it? Because I was sick and tired of the current state of public search engines. When creating I took lots of inspiration from them, but ultimately I made my own path and created some original concepts: (a.k.a. most used)

+ search results are sorted only via Maven Central usage, which works for some libraries, but others are impossible to find (see lower for comprehensive search tests)
+ categories
+ retired artifacts are marked
- just Java dependencies from Maven Central, no plugins, archetypes, classes or other libraries from other repositories
- updated weekly (a.k.a. official)

+ updated every hour or so
+ search for classes
- terrible search engine (see lower for comprehensive search tests)
- no plugins or archetypes (a.k.a. new contender)

+ pretty good search engine
+ autocomplete
+ retired artifacts are marked
+ dependencies, plugins, archetypes, java classes
+ libraries from Maven Central, Spring, JBoss and PrimeFaces Maven repository
- updated weekly (a.k.a. search everything, find nothing)

+ much more than just Java libraries - javascript, ruby etc.
+ very nice integration with GitHub
- from Java libraries just Maven Central
- terrible search engine (see lower for comprehensive search tests)
- it seems there's no update mechanism right now, often it doesn't contain current information (a.k.a. Maven Central alternative)

+ has a little bit more than just Java libraries from Central (jcenter)
- seldom updated
- terrible search engine (see lower for comprehensive search tests) (a.k.a. mostly unknown)

+ dependencies, plugins, archetypes
+ updated daily
- terrible search engine (see lower for comprehensive search tests)

Others, mostly unknown

Search engines search capabilities:

There are total 7 tests which tested the search engine to it's limits. Note that on I didn't use "Advanced search", because it requires precise knowledge what you're looking for, it's extra hassle and most people don't know about that feature anyways. If the result I was looking for was within several first results (first 5 results if not specified otherwise), the search engine would receive one point, otherwise zero. These are summary results: 7 - winner 4 2 2 0 0


search term: org.hibernate:hibernate-search-engine
Explanation: searching for groupId:artifactId, what could go wrong?
Results: 0 0 (wheel keeps turning, but no result) 1 0 0 0
search term: org.hibernate hibernate-search-engine
Explanation: searching for "groupId artifactId", what could go wrong?
Results: 0 1 1 0 0 (found 5.4.0.Alpha1 which is 6 months old???) 1
search term: spring
Explanation: This is very hard test, because I'm not specifying exactly what I'm looking for, just a name of the framework.
Results: 1 0 1 0 0 0
search term: hibernate search
Explanation: This is moderately hard test, because even though there are just few "Hibernate Search" libraries, there are lots of "Hibernate" libraries and "search" is a common word. Moreover there's a deprecated Hibernate Search artifact and the search engine should warn you about it somehow.
Results: 0 0 (found deprecated version without any warning) 1 0 0 0
search term: spring-webmvc
Explanation: This is fairly easy test, spring-webmvc is an artifactId. This should be within first 3 results.
Results: 1 1 1 0 (found 3.2.14.RELEASE which is 5 months old???) 0 1
search term: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
Explanation: You wouldn't belive how many people search this way.
Results: 1 0 1 0 0 0
search term: junit-4.12.jar
Explanation: Again you wouldn't belive ...
Results: 1 0 1 0 0 0

© Jiri Pinkas | this project on GitHub | related: JavaVids | Maven Central Repository Search | Java školení | Top SQL Blogs | monitored using: sitemonitoring

Top Java Blogs is a Java blog aggregator (with English-written blogs only) focused on Java SE, Java EE, Spring Framework and Hibernate.