<?xml version="1.0"?>
<faqs title="Information for Maven 1.0 Users">

  <part id="maven1">
    <faq id="changed">
      <question>What's Changed?</question>
      <answer>
        <p>
          Maven 2.0 will feel very different to a Maven 1.0 user - and perhaps a little strange. But it is a lot simpler
          to work with and closer to how Maven was always meant to be! The key changes from Maven 1.0 are:
        </p>
        <ul>
          <li>
            <i>Faster and smaller</i>
            - The Maven core no longer uses Ant, Jelly or Xerces making it much smaller, has
            fewer dependencies, and is perfect for embedding in other tools.
          </li>
          <li>
            <i>Defined build lifecycle</i>
            - No more
            <code>prereqs</code>
            ,
            <code>preGoals</code>
            and
            <code>postGoals</code>
            .
            The build is a series of well defined phases. This also means that the normal goal names are not used -
            <code>compile</code>
            ,
            <code>test</code>
            and
            <code>install</code>
            work for any project type.
          </li>
          <li>
            <i>Built-in multiple project handling</i>
            - Use the same goals on a set of projects, and aggregate the
            results.
          </li>
          <li>
            <i>Improved
              <code>SNAPSHOT</code>
              handling
            </i>
            - Snapshots are now checked for updates only once per day by
            default - though can be configured to be once per build, on a particular interval, or never. A command line
            option can force a check - making it more like updating from an SCM.
          </li>
          <li>
            <i>No more properties files</i>
            - All plugins are now configured from the POM (which is now called
            <code>pom.xml</code>
            ).
          </li>
          <li>
            <i>No more
              <code>maven.xml</code>
            </i>
            - Plugins are now easier to build and integrate, and are the only way
            to script your builds. (Note that additions may later be made to the POM to allow simple things that
            scripting
            was used for, such as goal aliasing).
          </li>
          <li>
            <i>No more Jelly</i>
            - Plugins are primarily written in Java, though there are providers for other scripting languages.
          </li>
          <li>
            <i>Improved repository layout</i>
            - Maven 2.0 supports both the existing layout, and an improved repository
            layout that has deeper, partitioned structure making it easier to browse.
          </li>
        </ul>
      </answer>
    </faq>
    <faq id="m1-or-m2">
      <question>Should I use Maven 2.0, or Maven 1.0?</question>
      <answer>
        <p>
          Maven 2.0 is the latest stable release, and we certainly recommend it for all new projects.
        </p>
        <p>
          If you are already using Maven 1.0 - you should try out Maven 2.0, as it is very much improved.
          However, we still continue to support the Maven 1.x releases at this time.
        </p>
        <p>
          If you do use Maven 1.0, and would like to upgrade in the future, you should carefully consider following some
          of the
          <a href="http://maven.apache.org/using/bestpractices.html">Best Practices</a>
          listed. These will make your project a lot easier to migrate in the future.
        </p>
        <p>
          The following are the known limitations in the current Maven 2.0 release compared to Maven 1.x:
        </p>
        <ul>
          <li>
            <i>Availability of plugins</i>
            - While most of the core Maven 1.x plugins have been converted,
            several 3rd party plugins may not be available. Maven 2.0 cannot execute Maven 1.0 plugins.
          </li>
        </ul>
      </answer>
    </faq>
    <faq id="m1-future">
      <question>What will happen to Maven 1.0?</question>
      <answer>
        <p>
          Maven 1.0.2 continues to work, and a 1.1 release is still under way. While significant new features will not
          be added to the Maven 1.0 core (such as transitive dependencies), bugfixes and support continue and the
          repository is still available. Features from Maven 2.0 may be included in Maven 1.1 where possible.
        </p>
        <p>
          An end-of-life for Maven 1.0.2 will be announced when this is decided - but there are currently no plans for
          this to happen.
        </p>
      </answer>
    </faq>
    <faq id="m1-plugins">
      <question>Will my Maven 1.0 plugins be supported?</question>
      <answer>
        <p>
          Not directly.
        </p>
        <p>
          We recommend building your Jelly plugins as thin wrappers around Java beans that do not use Maven 1.0 API's,
          which will allow easy migration to Maven 2.0.
        </p>
      </answer>
    </faq>
    <faq id="m1-maven-xml">
      <question>How do I write custom scripts without a
        <code>maven.xml</code>
        file?
      </question>
      <answer>
        <p>Taken from
          <a href="http://mail-archives.apache.org/mod_mbox/maven-users/200504.mbox/%3c1113788711.5625.30.camel@172.16.1.36%3e">
            this post to the Maven User's List</a>
          :
        </p>
        <blockquote>
          Everything in m2 is a plugin so for doing any sort of custom work like
          that you will need to make a plugin. This 1) greatly reduces the
          complexity within m2 because we only deal with proper plugins. The
          maven.xml file in m1 was a psuedo plugin essentially and greatly
          complicated the internals and 2) it promotes the sharing of your work
          right from the get go. To start with you'll probably write a plugin that
          is only applicable to your specific requirements, or your team's work,
          but you'll see people asking for some functionality and you'll go "hey,
          I have something like that!" and hopefully people who have concrete
          solutions will generalize their solutions so they can be shared with
          others. That's what we're trying to encourage.
        </blockquote>
        <blockquote>
          We estimate that there's a lot of work bound up in project's maven.xml
          that is not being shared and we'd like to try and change that. We plan
          to make it dead simple to share plugins and hopefully people can use
          other project's plugins as a start for a plugin that they may need
          themselves.
        </blockquote>
      </answer>
    </faq>
    <faq id="convert">
      <question>How do I convert from Maven 1.x to Maven 2.x?</question>
      <answer>
        This is dicussed in <a href="http://maven.apache.org/guides/mini/guide-m1-m2.html">Guide to Moving from Maven 1.x to Maven 2.x</a>.
      </answer>
    </faq>
  </part>
</faqs>

