Maven
  1. Maven
  2. MNG-2166

Provide the help listing as default when no arguments are provided

    Details

    • Type: New Feature New Feature
    • Status: Closed Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0, 2.0.1, 2.0.2
    • Fix Version/s: 2.0.8
    • Component/s: Command Line
    • Labels:
      None
    • Environment:
      Any
    • Complexity:
      Intermediate
    • Number of attachments :
      1

      Description

      When just writing "mvn" with no arguments on the command line I get a message such as this:
      >mvn
      [INFO] Scanning for projects...
      [INFO] ----------------------------------------------------------------------------
      [ERROR] BUILD FAILURE
      [INFO] ----------------------------------------------------------------------------
      [INFO] You must specify at least one goal. Try 'install'
      [INFO] ----------------------------------------------------------------------------
      [INFO] For more information, run Maven with the -e switch
      [INFO] ----------------------------------------------------------------------------
      [INFO] Total time: < 1 second
      [INFO] Finished at: Wed Mar 22 09:15:04 CET 2006
      [INFO] Final Memory: 1M/2M
      [INFO] ----------------------------------------------------------------------------

      Many new users to maven or any other such tools are used to getting at least some basic info of what is expected. How about just displaying the listing that shows up when a user writes "mvn -h" as default when no arguments are privided? This is also a feature that most other similar products have. I also would suggest printing a URL for where they can get basic information for how to use maven.

        Issue Links

          Activity

          Hide
          Stefano Bagnara added a comment -

          I was just adding a similar bug report.

          Having at least an informative "mvn help" would really help.
          I keep adding "BUILDING.txt" files to my projects to tell people what mvn commands they have to use to create the site, to create the package, to run some other plugin I configured in specific profiles and so on.

          Even a simple plugin (maven-help-plugin) that answer by default a text written in the pom would be a big step forward, then having a property for a default target to be invoked (defaulting to the "maven-help-plugin", but possibily overridable with package, site:stage or anything wirtten in the pom) would be a great solution (similar to what we had in ant)

          this "maven-help-plugin" could support inline text or a reference to a file to be shown or any other more advanced feature (automatically output help for the more common goals).

          Show
          Stefano Bagnara added a comment - I was just adding a similar bug report. Having at least an informative "mvn help" would really help. I keep adding "BUILDING.txt" files to my projects to tell people what mvn commands they have to use to create the site, to create the package, to run some other plugin I configured in specific profiles and so on. Even a simple plugin (maven-help-plugin) that answer by default a text written in the pom would be a big step forward, then having a property for a default target to be invoked (defaulting to the "maven-help-plugin", but possibily overridable with package, site:stage or anything wirtten in the pom) would be a great solution (similar to what we had in ant) this "maven-help-plugin" could support inline text or a reference to a file to be shown or any other more advanced feature (automatically output help for the more common goals).
          Hide
          brianfox brianfox added a comment -

          It is possible to set a default goal in the pom such that "mvn" is a valid invocation, however if no goals are found even after processing the pom, it would make sense to display some info.

          Show
          brianfox brianfox added a comment - It is possible to set a default goal in the pom such that "mvn" is a valid invocation, however if no goals are found even after processing the pom, it would make sense to display some info.
          Hide
          brianfox brianfox added a comment -

          New output:

          [INFO] Scanning for projects...
          [INFO] ------------------------------------------------------------------------
          [ERROR] BUILD FAILURE
          [INFO] ------------------------------------------------------------------------
          [INFO]
          
          You must specify at least one goal. Try 'mvn install' to build or 'mvn -?' for options
          See http://maven.apache.org for more information.
          
          
          [INFO] ------------------------------------------------------------------------
          [INFO] For more information, run Maven with the -e switch
          [INFO] ------------------------------------------------------------------------
          [INFO] Total time: 1 second
          [INFO] Finished at: Mon Oct 22 20:48:42 EDT 2007
          [INFO] Final Memory: 1M/4M
          [INFO] ------------------------------------------------------------------------
          
          Show
          brianfox brianfox added a comment - New output: [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] You must specify at least one goal. Try 'mvn install' to build or 'mvn -?' for options See http://maven.apache.org for more information. [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1 second [INFO] Finished at: Mon Oct 22 20:48:42 EDT 2007 [INFO] Final Memory: 1M/4M [INFO] ------------------------------------------------------------------------
          Hide
          Benjamin Bentmann added a comment -

          I still consider the output from Maven quite unhelpful in this case. Please consider that Maven is just a tool/utility for developers and hence not everybody out there will spend time to get through the documentation. Some peoply simply want to "use" Maven, not understand how it works.

          The Ant scripts that I am trying to replace in our organization all provided some help about the current project and the available targets using the echo task when the default target was executed. This allowed newbies to quickly figure out how to perform build steps without ever reading the Ant manual. Surely, once you know Maven's lifecycle you never need such help targets but especially old Ant geeks need some easy way of migrating into Maven land.

          The attached patch should provide the following console output:

          [INFO] Scanning for projects...
          [INFO] ------------------------------------------------------------------------
          [ERROR] BUILD FAILURE
          [INFO] ------------------------------------------------------------------------
          [INFO]
          
          You must specify at least one goal or lifecycle phase to perform build steps.
          The following list illustrates some commonly used build commands:
          
            mvn clean
              Deletes any build output (e.g. class files or JARs).
            mvn test
              Runs the unit tests for the project.
            mvn install
              Copies the project artifacts into your local repository.
            mvn deploy
              Copies the project artifacts into the remote repository.
            mvn site
              Creates project documentation (e.g. reports or Javadoc).
          
          Please see
          http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
          for a complete description of available lifecycle phases.
          
          Use "mvn -?" to show general usage information about Maven's command line.
          
          [INFO] ------------------------------------------------------------------------
          [INFO] For more information, run Maven with the -e switch
          [INFO] ------------------------------------------------------------------------
          [INFO] Total time: 1 second
          [INFO] Finished at: Mon Oct 22 20:48:42 EDT 2007
          [INFO] Final Memory: 1M/4M
          [INFO] ------------------------------------------------------------------------
          

          This output is intended to show further comon use-cases than just "install". Besides, the user is pointed to a concrete URL with helpful information for his actual need (personally, I consider pointing people at home pages as helpful as telling to use Google... information should be found, not searched)

          Show
          Benjamin Bentmann added a comment - I still consider the output from Maven quite unhelpful in this case. Please consider that Maven is just a tool/utility for developers and hence not everybody out there will spend time to get through the documentation. Some peoply simply want to "use" Maven, not understand how it works. The Ant scripts that I am trying to replace in our organization all provided some help about the current project and the available targets using the echo task when the default target was executed. This allowed newbies to quickly figure out how to perform build steps without ever reading the Ant manual. Surely, once you know Maven's lifecycle you never need such help targets but especially old Ant geeks need some easy way of migrating into Maven land. The attached patch should provide the following console output: [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] You must specify at least one goal or lifecycle phase to perform build steps. The following list illustrates some commonly used build commands: mvn clean Deletes any build output (e.g. class files or JARs). mvn test Runs the unit tests for the project. mvn install Copies the project artifacts into your local repository. mvn deploy Copies the project artifacts into the remote repository. mvn site Creates project documentation (e.g. reports or Javadoc). Please see http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html for a complete description of available lifecycle phases. Use "mvn -?" to show general usage information about Maven's command line. [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1 second [INFO] Finished at: Mon Oct 22 20:48:42 EDT 2007 [INFO] Final Memory: 1M/4M [INFO] ------------------------------------------------------------------------ This output is intended to show further comon use-cases than just "install". Besides, the user is pointed to a concrete URL with helpful information for his actual need (personally, I consider pointing people at home pages as helpful as telling to use Google... information should be found, not searched)

            People

            • Assignee:
              brianfox brianfox
              Reporter:
              Andre Ranvik
            • Votes:
              5 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: