The open source Apache Maven project has been helping software developers for over six years with their project build and reporting management needs. For most of that time, the project has been offering incremental updates to the Apache Maven 2.x product line, but in the next few months, Maven 3 is set to emerge.
Maven 3 will be the first major release for the Apache project since the Maven 2 release in 2005. It also comes at time when the project’s lead sponsor, Sonatype, is gearing up new commercially support applications to enhance the Maven ecosystem .
Currently, Maven 3 is still in active development with the most recent milestone, the 3.0 alpha 7 build. Maven creator Jason Van Zyl, who is also CTO of Sonatype, told InternetNews.com that he expects Maven 3.0 to be generally available in the next two to three months, though there will be one more alpha release before the first beta.
One of the big improvements that Van Zyl sees in Maven 3 is a significant performance boost to enable Maven to work better as part of other applications, notably the m2eclipse project. M2eclipse combines Maven with the Eclipse IDE and is the basis for the new Maven Studio for Eclipse developed by Sonatype .
“In Maven 3, there are changes related to embedding so we can get Maven to work better inside of m2eclipse,” Van Zyl said. “The upshot is a 200 to 300 percent performance increase for Maven operations inside of m2eclipse.”
Another new Maven 3 feature Van Zyl noted is what’s called Polyglot Maven, which aims to meld dynamic scripting languages like Ruby and Groovy with Maven’s Project Object Model (POM).
“What Polyglot Maven enables is a user to create a new POM format in a scripting language,” Van Zyl said. “We want to help developers to be able to build new tools using the language of their choice but still preserving Maven repository interoperability.”
Maven 3 will also include a Maven Shell, which is an interactive shell that developers can use with Maven projects and which provides a performance increase so they can query build servers faster.
While enhanced performance is an important part of Maven 3, one of the key goals for the effort is maintaining a degree of backwards compatibility with Maven 2 projects.
“We have gone to the ends of the Earth to try and make sure that Maven 2 projects will work in Maven 3,” Van Zyl said. “It won’t be like the Maven 1 to Maven 2 migration where we changed the format of the project and the repository and it caused a lot of grief. We just didn’t know how many users were actually using Maven 1 and it was a lot more than we thought.”
Van Zyl added that he is expecting that Maven 3 will be a drop-in replacement for 99 percent of the Maven 2 projects that exist.
“We fixed over 1,000 issues in Maven 3 that we couldn’t fix in Maven 2, so Maven 3 will really be a healthy replacement for Maven 2 users,” Van Zyl said.