A Walk Through the Java Ecosystem

To a new developer, the world of Java can be a very confusing place. While Java itself is a relatively straightforward programming language to learn, there are a number of associated technologies that you really should know. In this article I’ll look at the most important ones.

Java-ThumbnailFirst is Eclipse. Possibly the most successful open source IDE ever, Eclipse is a highly useful development tool that integrates with the Java Compiler to highlight compilation errors in the background. Yes you can build code without it, just like you can cut your lawn with scissors. But its main purpose is as the IDE in other open source systems, such as Dart and Scala and as the home to projects, including a complete implementation of the Git version control system.

Eclipse Java IDE

The Eclipse IDE

Alternatives to Eclipse include Netbeans which is open source and IntelliJ Idea which comes in a free and paid version. I’ll look at those in more depth in future articles.

Maven is a tool to help you manage your software. If you’ve worked in enterprise software, you could describe it as an enterprise build tool. It provides a standardized way to build, test, package, document and deploy projects.

An alternative is Ant, which can build and run software but needs explicit instructions to say where the source code is. Ant should be used with Ivy, which is a dependency manager. Ivy lets you specify the dependencies (other Java libraries, tools etc). It’s particularly good where the dependencies you are using depend on other dependencies.

The problem that Maven, or Ant + Ivy solve is that your software will likely make use of other software stored in repositories, like the Maven 2 repository, which holds over 63,000 unique artifacts. A maven artifact is usually a .jar file (basically a zip file holding Java byte code, resources and property files), a .war file (Web application files) or possibly a .ear file containing EJB files. These get deployed to a Maven repository.

Maven Repository Search

Your software may need to specify a particular version of a component is uses, which then has to be fetched, along with all the components that component uses. In the days before these tools, you’d fetch them yourself but managing multiple dependencies on your own can be very time consuming and cause excessive hair loss.

Though they use the same repositories, Maven and Ant + Ivy do things in different ways. You can also set up your own repositories– some companies will do that and only allow access to those.

The Spring Framework, now over ten years old, is another technology to know. It was created to simplify enterprise Java development, to be used instead of the J2EE model, and is now the leading Java server framework with millions of users. It provides modules for dependency injection, AOP, inversion of control, and support for Hibernate and other open source frameworks.

In addition, the Spring Framework has a family of Spring open source frameworks, including Spring Security, Spring Integration, Spring Batch, Spring Data, Spring Web Flow, and many more. If you needed to access MongoDB or Neo4J, you’d use Spring Data.

I’ve only touched on a few of the technologies but I’ll go over some more in a later article.

Comments

  1. BY rav says:

    Thanks for an highly informative article. While this is good overview Keep up with the enlightening activity and It would really help if you could delve a little deeper on each topics. Especially GIT .( how to log and commit code in the cloud ) for starters.and detail Spring ( framework)

Post a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>