Category Archives: m2eclipse

Navigation improvements in the m2eclipse XML POM editor


February 1, 2011 By mkleint

If you use the m2eclipse POM XML editor, you will be interested to know that we’ve made a number of improvements to the interface.   Yesterday, we introduced some addition auto-correct options and automatic integration of the POM XML editor and the Artifact Search dialog.   Today, we focus on improved navigation options now available in the m2eclipse POM XML Editor. By making use of the current effective POM, we are able to give you more information right at your fingertips.

The screenshot below shows options that are available to you by hovering over on an expression in the m2eclipse POM XML Editor.

Continue reading

New in m2e 0.12.1 – Maven 3.0.2, Async HTTP Client


January 18, 2011 By Pascal

Today we are releasing m2e 0.12.1. Despite our previous announcement that 0.12.0 would be the last version made available from Sonatype, we have decided to cut this point release to make available new versions of the m2e dependencies.

Most notably, this release includes recently released Maven 3.0.2 embedded runtime and an updated version of Async HTTP Client that resolves all known issues reported against m2e 0.12.0, and thus helps make m2e work better in corporate environments.

As usual this version of m2e is made available from the Eclipse Marketplace and from http://m2eclipse.sonatype.org/sites/m2e/.

Enjoy!

Inserting artifacts in the m2eclipse POM editor


By mkleint

In the upcoming m2eclipse release, we’ve reworked how inserting artifacts (dependencies, plugins, parents) works in the XML editor. Instead of generating a skeleton template snippet for you to populate with maven coordinates (groupId/artifactId/version) we reuse the Artifact Search dialog. This post is a glimpse into some of the functionality that will be available in the coming weeks.

Instead of expecting a user to supply these artifacts directly in the XML editor, you now have the option to search for an artifact and let m2eclipse take care of the details. We’ve also made some improvements to the Artifact Search dialog. Screenshots speak as thousands of words though so let’s take a look.

Read the rest of this post to learn more about this new way to insert artifact coordinates in a Maven POM using m2eclipse.

Continue reading

Maven IDE: The year of Maven & Eclipse


January 10, 2011 By Jason van Zyl

There are many things we would like to see accomplished in the Apache Maven ecosystem in 2011 but one of the most important, we feel, is the sound integration of Maven with Eclipse. A great deal of effort was spent bringing Maven 3.x up to the level where it can be leveraged for an effective integration with Eclipse. With Maven 3.0 released in 2010 we are in a position to focus on the Eclipse side of the equation. For those you who watch the M2Eclipse JIRA you can see a great deal of activity and that’s because Sonatype’s M2Eclipse team is doing for M2Eclipse what Sonatype’s Maven team did for Maven 3.0. Sonatype is working on the internal architecture of M2Eclipse, adding tests, and preparing the path forward which means the integration of Maven with the rest of the Eclipse ecosystem.

Sonatype is investing heavily to ensure the baseline M2Eclipse 1.0 is of high quality, stable, and maintainable. With the help of the amazing IP team at the Eclipse Foundation M2Eclipse has passed its initial IP review, has entered the parallel IP process and is slated to be released as part of the 2011 Indigo release of Eclipse. To be certain, this will be a great milestone for the Maven and Eclipse ecosystems: users have been asking for years to have good Maven integration included in the standard Eclipse distributions and this will be the year they get it. Indigo will ship this year on June 22nd, but in the meantime Sonatype will be working on and soon releasing Maven IDE!

MavenIDE.png

What is Maven IDE exactly? Maven IDE is a Maven-focused distribution of Eclipse that will consist of a base Eclipse distribution, M2Eclipse and a series of Maven-focused integrations where there is strong support within the Maven and Eclipse ecosystems. What are some of the things we are looking at potentially integrating?

Frameworks and languages

JSR-330 & Guice integration: JSR-330 & Guice are now critical to the Maven ecosystem and very important to Sonatype as a technology. The JSR-330 implementation provided by Guice provides core functionality for Maven 3.x, Nexus, M2Eclipse, and Sonatype’s Maven 3.x integration for Hudson. We will create tooling for JSR-330 to help with our own work, general integration work for development infrastructures, and anyone using JSR-330.

Webapp development tooling: Webapp development is the most requested form of integration and we are still evaluating what’s available in WTP versus making something that is simpler and integrates more tightly with Maven. For those that don’t know, the WTP integration for M2Eclipse is not part of the codebase that moved to Eclipse. Sonatype will be working with the community on the M2Eclipse/WTP integration and will help distribute it from Sonatype, but we are also looking at alternatives to WTP.

Tycho integration: We already have support for Tycho inside Eclipse that allows Tycho projects to interoperate with PDE at a rudimentary level, but we would like to improve this integration and bring support for Tycho-based projects into the Eclipse IDE.

Maven Shell integration: This is where the Maven command line will intersect with the IDE. We see in the future being JSR-330 component based so we can leverage them from the Maven Shell and Maven IDE, and these components will participate in long-lived workflows that aid in the development of applications. We plan to use Drools Flow for the workflow implementation and the Eclipse tooling that exists for Drools Flow. The workflows will be accessible and usable from the Maven Shell as well as from within Maven IDE.

Polyglot Maven integration: For some of the selected grammars and dialects of Polyglot Maven we will provide support in Maven IDE. The folks at Itemis have been a great in helping us understand how Xtext can play a critical role in this regard. If a grammar can be represented in a form that Xtext understands then much of the plumbing for powerful editors can be created automatically using the Xtext framework. There are currently some integration issues between standard Maven and OSGi that need to be resolved but Xtext is an incredibly powerful language workbench. The Itemis guys have really done some incredible work.

Android development tooling: Android is becoming very popular and has a strong Maven contingent. There are sophisticated Maven-based tools for developing Android apps that have been created by Android community: the maven-android-plugin by Hugo Josefson from Jayway, the Eclipse integration exists as part of what Google provides, and Ricardo Gladwell has created the bridge between Maven and Eclipse with his Android M2Eclipse integration.

Scala IDE: Miles Sabin is creating great Eclipse integration for Scala with his Scala IDE project and David Bernard is bridging that work into Maven m2eclipse-scala. We are seeing a lot of demand for Scala integration with Maven.

GWT integration: GWT has rapidly become one of the standard webapp toolkits for Java and we’ve seen a lot of demand for better integration with M2Eclipse. Within the realm of development infrastructure GWT is very popular. Sonar uses GWT, Gerrit uses GWT, XWiki uses GWT, and Sonatype has chosen GWT as the basis of the UI for our Maven 3.x integration in Hudson. GWT will continue to gain momentum so it’s very likely we will have more sophisticated integration with M2Eclipse sooner rather then later.

Development infrastructure

Sonar integration: Sonar is becoming the de facto standard reporting and quality system for Java projects. Sonar is very Maven-centric and SonarSource has provided Eclipse integration that can easily be integrated with Maven IDE.

Hudson integration: Hudson is the de facto standard continuous integration server for Java projects. Sonatype is currently working on finishing our Maven 3.x integration and it will be integrated within Maven IDE.

Wiki editing & site publishing: Sonatype has a wiki page editing and publishing framework called Idiom — that is based on the WikiModel project — that we will be open sourcing, and hopefully merging with the tools that exist in the WikiText project at Eclipse. Ultimately we would like to see WikiModel merged with WikiText and then work together within the community to make great editing tools. If WikiModel could be wed with Xtext it would be amazing.

SVN integration: Obviously important and we initially removed the SVN support to clean up and focus on the core. We’re layering it back in as resources permit. It’s not going anywhere and there are actually two options now. Sonatype supports the Subversive integration which is the official SVN integration at Eclipse, but the community has contributed the Subclipse support. So both variants will be available and Maven IDE will ship with the Java-based SVNKit connector.

Git integration: Git is sweeping over the development community and has taken off like wildfire. At Sonatype we use Git for the vast majority of our projects so great Git integration with Eclilpse and Maven is vital.

Maven Central statistics and metadata: Many OSS projects have been thrilled with the statistics we’ve provided them and we’ll be working in the future to provide more value from the information in Maven Central and deliver it into Maven IDE. Maven Central is an unparalleled source of interesting and useful information for developers and we want to make all that information more accessible.

So you can see that the number of paths we can potentially take are limitless. What will really help us limit our choices are the partners we find who are as committed as we are to the Maven and Eclipse ecosystems. We’re not interested in individuals, groups, or organizations that are hedging their bets with Maven and Eclipse. We are looking for individuals, groups, and organizations who are committed to the Eclipse Platform and Maven as the basis of their development infrastructures.

Things we’ll be looking for in integration partners, are: Tycho build, good test infrastructure, and a composite p2 repository for integration. Maven IDE will first be available in an OSS community edition and will be followed by future commercial versions. We are excited about building out a polished, Maven-focused distribution of Eclipse and we’re really looking for feedback from the community about what integrations to pursue first. So please let us know!

Apache and Apache Maven are trademarks of the Apache Software Foundation. Maven Central is a service mark of Sonatype, Inc. Nexus, Maven IDE, Maven Shell, and Polyglot Maven are trademarks of Sonatype, Inc. Maven Central, Maven IDE, Maven Shell, and Polyglot Maven are intended to complement Apache Maven and should not be confused with Apache Maven.

m2e at Eclipse: What will this mean for you?


December 1, 2010 By Pascal

As previously mentioned we are in the process of moving m2e to the Eclipse Foundation.  Currently we are going over the implications of this move from an end-user perspective and an m2e extension developer’s perspective.

From an end-user perspective this means a wider availability of m2eclipse, but more importantly it means an alignment of m2e with the main Eclipse components and also with the Eclipse releases.  m2e will be participating in the Indigo release train and we have asked for its inclusion in the Java Developer Package.

Eclipse is known for IP cleanliness. Through its very thorough IP review process, the Eclipse Foundation has been known to only make available code with a very clear pedigree. In fact, it is this very process that prevented us from moving our code to Eclipse a couple years ago. We now have addressed all the issues uncovered in this initial attempt.

You may wonder, how does this help me? It does not make m2e run faster, or better? You are right, but it helps where you can’t see.  It helps making someone in your management chain more comfortable with the usage of m2e, but also enables m2e for inclusion into more Eclipse-based products and to some extent favor the creation of m2e extensions.

From an extender perspective, this move means work. In fact, since m2e namespace will now be org.eclipse.m2e instead of org.maven.ide, m2e extension developers will to be forced to change their code to have their extensions work with the new m2e. Despite our commitment to work in Eclipse 3.7 (Indigo), m2e is still targeted to work on Eclipse 3.5, 3.6 and 3.7, which means that you should not have to maintain two branches of your code one for the “old” Sonatype m2e and one for the new Eclipse m2e.

Overall despite the initial hurdle that can result from this sort of move, we are deeply convinced that it is a great opportunity for the m2e community at large.