| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
|
|
|
| $pageTitle = "";
|
| $pageKeywords = "";
|
| $pageAuthor = "";
|
|
|
| ob_start();
|
| ?>
|
| <div id="maincontent">
|
| <div id="midcolumn">
|
|
|
| <h1>The m2eclipse Project Proposal</h1>
|
| </p>
|
| <?php
|
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php");
|
| generate_header("m2e");
|
| ?>
|
|
|
| <h2>Background and Overview</h2>
|
| <p> |
| <p> |
| The m2e project is a proposed open source project under the Eclipse Technology Project. This |
| document describes the content and the scope of the proposed project. This proposal is in the Project Proposal |
| Phase (as defined in the Eclipse Development Process document) and is written to declare |
| its intent and scope. You are invited to comment on and/or join the project. Please send all feedback to |
| the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.m2e">http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.m2e</a> newsgroup.</p> |
| <p> |
| Maven is a widely used tool for build and release engineering which focuses on headless |
| operation to facilitate automation. Maven is language agnostic and has tool chains for |
| working with Java, .NET, and C/++. The Apache Maven project also has sub-projects which |
| deal specifically with binary artifact repositories (Maven Artifact), SCM abstraction |
| (Maven SCM), Testing abstraction (Maven Surefire), and rapid project prototyping |
| (Maven Archetype). Eclipse is the most widely used IDE, users demand parity between |
| the IDE and headless operations, and so it is natural that users are also demanding |
| seamless integration between Maven and Eclipse. The m2eclipse project's primary focus |
| will be creating this seamless integration between Maven and Eclipse, and we would |
| like to bring this effort to the Eclipse Foundation. |
| </p>
|
|
|
| <p>
|
| The longest standing effort to unify the Maven and Eclipse worlds has been m2eclipse project at Codehaus.
|
| The m2eclipse (m2e) project has rich integration with Maven features, a large community of users,
|
| and collaboration with key Maven community members responsible for critical pieces of technology. Examples include the
|
| Maven Embedder (Jason van Zyl), Archetype (Jason van Zyl, Raphael Pieroni), and Proximity (Tamas Cservenak).
|
| The m2eclipse lead developer, Eugene Kuleshov, is also a committer on projects like Subclipse, and Mylyn which
|
| affords us the opportunity for great integration with these tools. So from the perspective of diversity, the
|
| m2eclipe project is positioned to create solid integration between Maven and Eclipse.
|
| </p>
|
|
|
| <h2>Mission</h2>
|
| <p>
|
| <ul>
|
| <li>
|
| Extensibility: We recognize both the common need for Maven tooling infrastructure and the desire to extend the
|
| tools in new and innovative ways. To support these efforts, our components will be designed for, and make
|
| good use of, extensibility mechanisms supported by Eclipse.
|
| </li>
|
| <li>
|
| Community Involvement: Success for m2e, as with other eclipse.org projects, is as much a factor of community
|
| involvement as the technical merit of its components. We strongly believe that m2e will achieve its full potential
|
| only as the result of deep and broad cooperation with the Eclipse community. Thus, we will make every
|
| effort to accommodate collaboration, reach acceptable compromises, and provide a project management infrastructure
|
| that includes all contributors, regardless of their affiliation, location, interests, or level of involvement.
|
| Regular meetings covering all aspects of m2e, open communication channels, and equal access to process will
|
| be key areas in driving successful community involvement.
|
| </li>
|
| <li>
|
| Transparency: As with all projects under the eclipse.org umbrella, key information and discussions at every
|
| level - such as requirements, design, implementation, and testing - will be easily accessible to the
|
| Eclipse community.
|
| </li>
|
| </ul>
|
| </p>
|
|
|
| <h2>Short Term Goals</h2>
|
| <p>
|
| <ul>
|
| <li>Execution of Maven inside Eclipse with an in-process, and out-of-process model</li>
|
| <li>Integration with Maven repositories</li>
|
| <li>Rapid project creation using Archetype and extensible project customization for other Eclipse tools</li>
|
| <li>Headless builds for OSGi-based projects using Maven</li>
|
| <li>Create services and extension points to allow 3rd parties to access all of Maven's capabilities</li>
|
| <li>Project materialization using Maven metadata</li>
|
| <li>Intuitive POM editing and refactoring</ii>
|
| <li>Dependency visualization and analysis</li>
|
| <li>PDE, WTP, and Mylyn Integration</li>
|
| </ul>
|
| <p>
|
| <h2>Long Term Goals</h2>
|
| <p>
|
| <ul>
|
| <li>Full bridge from Maven's runtime to Equinox's runtime (Plexus to Equinox bridge)</li>
|
| <li>Eclipse plugin deployment to Maven repositories</li>
|
| <li>Eclipse provisioning and updating from Maven repositories</li>
|
| <li>Natively building OSGi-based projects (look mom, no pom.xml)</li>
|
| </ul>
|
| </p>
|
|
|
| <h2>
|
| Description
|
| </h2>
|
| <p>
|
| The m2eclipse project is currently hosted at Codehaus which you can see <a href="http://m2eclipse.codehaus.org/">here</a>.
|
| We have also collected a great deal of information in our wiki which you can see
|
| <a href="http://docs.codehaus.org/display/M2ECLIPSE/Home">here</a>.
|
| </p>
|
|
|
| <h2>Collaboration</h2>
|
|
|
| <h3>Mylyn</h3>
|
| <p>
|
| The m2eclipse project currently has rudimentary integration which allows the <i>issueManagement</i> element of Maven's POM to help bootstrap a typical developer's
|
| Mylyn setup. We have many plans for richer integration and look forward to working with the Mylyn team.
|
| </p>
|
|
|
| <h3>P2</h3>
|
| <p>
|
| The m2eclipse project would like to work with the P2 team to provide integration between Maven repositories and P2. This would allow provisioning
|
| runtimes and Eclipse environments from Maven repositories that have been populated with OSGi bundles and Eclipse plug-ins.
|
| </p>
|
|
|
| <h3>PDE</h3>
|
| <p>
|
| The m2eclipse project would like to work with the PDE team to create headless build support for OSGi bundles and Eclipse plug-ins from Maven. We have an initial
|
| first form on this system in the Tycho sub-project of m2eclipse that was created by Tom Huybrechts. This initial form requires a POM and some magic swizzling of
|
| Eclipse installations, but we would ultimately like to provide a way to directly build native PDE projects with Maven.
|
| </p>
|
|
|
| <h3>WTP</h3>
|
| <p>
|
| The m2eclipse project being driven by its users needs to provide WTP integration. It is one of the popular requests from users. Raghuraman Ramaswamy has
|
| prototyped some parts of WTP integration that we plan to include with m2eclipse. We would really like to work with the WTP team to
|
| provide first-class integration between Maven and WTP.
|
| </p>
|
|
|
| <h2>
|
| Organization
|
| </h2>
|
|
|
| <h3>
|
| Mentors
|
| </h3>
|
| <ul>
|
| <li>Ed Merks (IBM)</li>
|
| <li>Chris Anisczcyk (IBM)</li>
|
| </ul>
|
|
|
| <h3>
|
| Initial committers
|
| </h3>
|
| <p>
|
| The initial committers are:
|
| </p>
|
| <ul>
|
| <li>Eugene Kuleshov (Sonatype)</li>
|
| <li>Wes Isberg (Sonatype)</li>
|
| <li>Dmitri Platinoff (Sonatype)</li>
|
| <li>Jason van Zyl (Sonatype, Maven Founder)
|
| <li>Oleg Gusakov (EBay)</li>
|
| <li>Igor Fedorenko</li>
|
| <li>Hervé Boutemy (Maven Committer)</li>
|
| <li>Raghuraman Ramaswamy (Xebia, WTP Integration)</li>
|
| <li>James Ervin (Eclipse Committer, Groovy Monkey)</li>
|
| <li>Tom Huybrechts (AGFA)</li> |
| <li>Vincent Siveton (Maven Committer)</li> |
| <li>Lukáŝ Křečan</li> |
|
|
| </ul>
|
| <h3>
|
| Interested parties
|
| </h3>
|
| <p>
|
| The following projects have expressed interest using the tools, contributing ideas, guidance and discussion. Key contacts listed.
|
| </p>
|
| <ul>
|
| <li>AppFuse (Matt Raible)</li>
|
| <li>Codegear (Ravi Kumar, Karl Ewald)</li>
|
| <li>E*Trade (Durai Arasan)</li>
|
| <li>EBay (Oleg Gusakov)</li>
|
| <li>Intuit (Gill Clark)</li>
|
| <li>IONA (Oisin Hurley, Bruce Snyder)</li>
|
| <li>LinkedIn (Arnold Goldberg)</li>
|
| <li>MuleSource (Ross Mason, Dan Diephouse)</li>
|
| <li>NexB (Philippe Ombrédanne)</li>
|
| <li>Qualcomm (Mike McSherry)</li>
|
| <li>Webtide (Greg Wilkins, Jan Bartel)</li>
|
| <li>XWiki (Ludovic Dubost, Vincent Massol)</li> |
| <li>Polarion (Igor Vinnykov)</li> |
| <li>AccuRev</li>
|
|
|
| </ul>
|
| <h3>
|
| Developer community
|
| </h3>
|
| <p>
|
| The vast majority of the work done on m2eclipse thus far has been sponsored by Sonatype, but we are rapidly gathering a
|
| following and foresee many of the interested parties getting involved in the development to benefit their organization,
|
| or integrate with their commercial offerings. Five of our committers are actually non-Sonatypers so we are already achieving
|
| some diversity.
|
| </p>
|
|
|
| <h3>
|
| User community
|
| </h3>
|
| <p>
|
| We have the largest community of any Maven/Eclipse integration project, we get more patches then we can deal with, and we are
|
| starting to get substantial contributions from the community. The WTP integration from Raghuraman Ramaswamy, the Maven
|
| service API developed by Oleg Gusakov and James Ervin, and the Subversive integration for project materialization
|
| created by Polarion are the first examples of this type of community involvement. We expect a lot more community
|
| involvement in the near future.
|
| </p>
|
|
|
| </div>
|
| </div>
|
| <?php
|
| $html = ob_get_contents();
|
| ob_end_clean();
|
|
|
| # Generate the web page
|
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
|
| ?>
|