Quick Start

This guide is designed to get you up and running quickly.

Creating the project

First, you'll need to download and install maven2 if you haven't already done so. You *don't* have to use Maven, but it makes things substantially easier by managing all of the dependencies in Trails, and - take my word for it - for you as well. Even if you hit some minor problems with Maven, it saves you a lot of time as your project gets bigger.

If you are not familiar with maven, here are some links that'll help you get the knowledge you need to use it with Trails:
Maven: The Definitive Guide
Maven Users Centre

Next, issue the following command (on a single line):

mvn archetype:create -DarchetypeGroupId=org.trailsframework \
-DarchetypeArtifactId=trails-archetype \
-DarchetypeVersion=1.2.1 \
-DgroupId=<your package> \
-DartifactId=<your project>

This will download the Trails archetype and any plugins needed. It will then create a working Trails project.

Running the project

Starting up your application is super simple, just go into your new project directory and do:

mvn jetty:run

or

mvn tomcat:run

This will download all dependencies, build your project and start it inside a jetty (or tomcat) container.  Be warned, this can take a long time, especially if you just started using maven.  If any downloads fail, try running this again.  Sometimes the maven repositories get bogged down.  When everything finishes, you will now be able to go to http://localhost:8080/

Import your project

Setting up an Eclipse project is also very simple. First, you will need to tell Eclipse how to find your maven repository. This is a one time step for each Eclipse workspace:

mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo

Now do:

mvn eclipse:eclipse

You should now be able import your project into Eclipse and ready to add your own domain classes!

Labels

 
(None)
  1. Feb 15, 2008

    Tom Cook says:

    I am new to Maven, so I am likely doing something dumb.&nbsp; I have downloaded ...

    I am new to Maven, so I am likely doing something dumb.  I have downloaded and unpacked Maven 2.0.8, added the M2, M2_HOME variables to my environment and set PATH correctly so that mvn is found.  When I do this:

     mvn archetype:create -DarchetypeGroupId=org.trailsframework -DarchetypeArtifactId=trails-archetype -DarchetypeVersion=1.1.1 -DgroupId=com.mytrailsproject -DartifactId=mytrailsproject

    I get the following output:

     [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] Preparing archetype:create
    [INFO] No goals needed for project - skipping
    Downloading: http://repo1.maven.org/maven2/com/mytrailsproject/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
    Downloading: http://repo1.maven.org/maven2/com/mytrailsproject/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
    [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] No archetype repository found.
    [WARNING] Specified archetype not found.
    Choose archetype:
    1: internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)
    2: internal -> appfuse-basic-spring (AppFuse archetype for creating a web application with Hibernate, Spring and Spring MVC)
    3: internal -> appfuse-basic-struts (AppFuse archetype for creating a web application with Hibernate, Spring and Struts 2)
    4: internal -> appfuse-basic-tapestry (AppFuse archetype for creating a web application with Hibernate, Spring and Tapestry 4)
    5: internal -> appfuse-core (AppFuse archetype for creating a jar application with Hibernate and Spring and XFire)
    6: internal -> appfuse-modular-jsf (AppFuse archetype for creating a modular application with Hibernate, Spring and JSF)
    7: internal -> appfuse-modular-spring (AppFuse archetype for creating a modular application with Hibernate, Spring and Spring MVC)
    8: internal -> appfuse-modular-struts (AppFuse archetype for creating a modular application with Hibernate, Spring and Struts 2)
    9: internal -> appfuse-modular-tapestry (AppFuse archetype for creating a modular application with Hibernate, Spring and Tapestry 4)
    10: internal -> maven-archetype-j2ee-simple (A simple J2EE Java application)
    11: internal -> maven-archetype-marmalade-mojo (A Maven plugin development project using marmalade)
    12: internal -> maven-archetype-mojo (A Maven Java plugin development project)
    13: internal -> maven-archetype-portlet (A simple portlet application)
    14: internal -> maven-archetype-profiles ()
    15: internal -> maven-archetype-quickstart ()
    16: internal -> maven-archetype-site-simple (A simple site generation project)
    17: internal -> maven-archetype-site (A more complex site project)
    18: internal -> maven-archetype-webapp (A simple Java web application)
    19: internal -> struts2-archetype-starter (A starter Struts 2 application with Sitemesh, DWR, and Spring)
    20: internal -> struts2-archetype-blank (A minimal Struts 2 application)
    21: internal -> struts2-archetype-portlet (A minimal Struts 2 application that can be deployed as a portlet)
    22: internal -> struts2-archetype-dbportlet (A starter Struts 2 portlet that demonstrates a simple CRUD interface with db backing)
    23: internal -> struts2-archetype-plugin (A Struts 2 plugin)
    24: internal -> shale-archetype-blank (A blank Shale web application with JSF)
    25: internal -> maven-adf-archetype (Archetype to ease the burden of creating a new application based with ADF)
    26: internal -> data-app (A new Databinder application with sources and resources.)
    27: internal -> jini-service-archetype (Archetype for Jini service project creation)
    28: internal -> softeu-archetype-seam (JSF+Facelets+Seam Archetype)
    29: internal -> softeu-archetype-seam-simple (JSF+Facelets+Seam (no persistence) Archetype)
    30: internal -> softeu-archetype-jsf (JSF+Facelets Archetype)
    31: internal -> jpa-maven-archetype (JPA application)
    32: internal -> spring-osgi-bundle-archetype (Spring-OSGi archetype)
    33: internal -> confluence-plugin-archetype (Atlassian Confluence plugin archetype)
    34: internal -> maven-archetype-har (Hibernate Archive)
    35: internal -> maven-archetype-sar (JBoss Service Archive)
    36: internal -> wicket-archetype-quickstart (A simple Apache Wicket project)
    Choose a number:  (1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36):
     

     It seems that the trails-archetype component is not being downloaded from the Maven repository.   Any idea why?  Note that, in the above example, I have already run maven previously, so it didn't need to download all the usual maven components.

  2. Feb 19, 2008

    Kalle Korhonen says:

    Sorry for the trouble Tom. Unfortunately, you happened to try Maven exactly at a...

    Sorry for the trouble Tom. Unfortunately, you happened to try Maven exactly at a wrong moment. There was a newer alpha-quality archetype plugin released just a few days before, and it completely broke the current archetypes. Run the command again with

    mvn org.apache.maven.plugins:maven-archetype-plugin:1.0-alpha-7:create -DarchetypeGroupId=org.trailsframework -DarchetypeArtifactId=trails-archetype -DarchetypeVersion=1.1.1 -DgroupId=com.mytrailsproject -DartifactId=mytrailsproject

    Note how the version of the archetype plugin itself is specified. The syntax is ugly, sorry, but it's Maven (archetype plugin problem). More info at http://www.nabble.com/Not-founding-standart-archetypes-td15515118s177.html.