Maven

From KevinWiki

Revision as of 10:13, 5 April 2009 by Kevin (Talk | contribs)
Jump to: navigation, search


Contents

Install (on Ubuntu Linux 8.04 or higher)

$ sudo apt-get install maven2 


Using Maven2

Create a Project

$ mvn archetype:create -DgroupId=testappgroup -DartifactId=testproject 
  • Result

(pwd is /home/user/workspace).

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [archetype:create] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:create]
[WARNING] This goal is deprecated. Please use mvn archetype:generate instead
[INFO] Defaulting package to group ID: testappgroup
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating OldArchetype: maven-archetype-quickstart:RELEASE
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: testappgroup
[INFO] Parameter: packageName, Value: testappgroup
[INFO] Parameter: package, Value: testappgroup
[INFO] Parameter: artifactId, Value: testproject
[INFO] Parameter: basedir, Value: /home/user/workspace
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] ********************* End of debug info from resources from generated POM ***********************
[INFO] OldArchetype created in dir: /home/user/workspace/testproject
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Sun Apr 05 19:20:04 EST 2009
[INFO] Final Memory: 16M/242M
[INFO] ------------------------------------------------------------------------


Maven Life Cycle

Build a Project

Integration with Eclipse

Add Maven Repository Info

-Add the Maven repository info to the Eclipse workspace.

  • Close Eclipse if it is running
  • Open the terminal and type the following command.
 $ mvn -Declipse.workspace=/home/user/workspace eclipse:add-maven-repo 

(Don't use ~ for home directory).

  • Result
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'eclipse'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [eclipse:add-maven-repo] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [eclipse:add-maven-repo]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Sun Apr 05 16:37:42 EST 2009
[INFO] Final Memory: 16M/292M
[INFO] ------------------------------------------------------------------------
  • Then M2_REPO can be found from
Preferences -> Java -> Classpath Variables
  • If the mvn command is executed while Eclipse is running, restart the Eclipse.




Add Eclipse Metadata to Non-Eclipse Project

  • Move to the project and run the maven eclipse:eclipse
$ cd /home/user/workspace/testproject
$ mvn eclipse:eclipse 


  • Result
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'eclipse'.
[INFO] ------------------------------------------------------------------------
[INFO] Building testproject
[INFO]    task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse]
[INFO] Using Eclipse Workspace: /home/user/workspace
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Not writing settings - defaults suffice
[INFO] Wrote Eclipse project for "testproject" to /home/user/workspace/testproject.
[INFO] 
       Sources for some artifacts are not available.
       Please run the same goal with the -DdownloadSources=true parameter in order to check remote repositories for sources.
       List of artifacts without a source archive:
         o junit:junit:3.8.1

       Javadoc for some artifacts is not available.
       Please run the same goal with the -DdownloadJavadocs=true parameter in order to check remote repositories for javadoc.
       List of artifacts without a javadoc archive:
         o junit:junit:3.8.1

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Sun Apr 05 19:56:21 EST 2009
[INFO] Final Memory: 16M/243M
[INFO] ------------------------------------------------------------------------
  • To download the source code and the javadoc of the junit mentioned above, run the following command.

(Optional)

$ mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true 
  • Result
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'eclipse'.
[INFO] ------------------------------------------------------------------------
[INFO] Building testproject
[INFO]    task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse]
[INFO] Using Eclipse Workspace: /home/user/workspace
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Not writing settings - defaults suffice
[INFO] Wrote Eclipse project for "testproject" to /home/user/workspace/testproject.
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Sun Apr 05 20:06:13 EST 2009
[INFO] Final Memory: 17M/292M
[INFO] ------------------------------------------------------------------------


  • Now, the project can be imported as an existing Eclipse project with 'Import' function on Eclipse (Chose Existing Projects into Workspace).
Personal tools