tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Tapestry > Getting Started
Date Fri, 19 Nov 2010 17:57:00 GMT
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1810/9/12/_/styles/combined.css?spaceKey=TAPESTRY&amp;forWysiwyg=true"
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/TAPESTRY/Getting+Started">Getting
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~hlship">Howard
M. Lewis Ship</a>
                         <h4>Changes (2)</h4>
<div id="page-diffs">
            <table class="diff" cellpadding="0" cellspacing="0">
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >[INFO] ------------------------------------------------------------------------
<br>/tmp <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">$
tree newapp <br>newapp <br>|-- pom.xml <br>`-- src <br>|-- main <br>|
|-- java <br>| | `-- com <br>| | `-- example <br>| | `-- newapp <br>|
| |-- components <br>| | | `-- Layout.java <br>| | |-- pages <br>| | | |--
About.java <br>| | | |-- Contact.java <br>| | | `-- Index.java <br>| | `--
services <br>| | `-- AppModule.java <br>| |-- resources <br>| | |-- com
<br>| | | `-- example <br>| | | `-- newapp <br>| | | |-- components <br>|
| | | `-- Layout.tml <br>| | | `-- pages <br>| | | `-- Index.properties <br>|
| `-- log4j.properties <br>| `-- webapp <br>| |-- About.tml <br>| |-- Contact.tml
<br>| |-- Index.tml <br>| |-- WEB-INF <br>| | |-- app.properties <br>|
| `-- web.xml <br>| |-- favicon.ico <br>| `-- layout <br>| |-- images <br>|
| |-- img01.jpg <br>| | |-- img02.jpg <br>| | |-- img03.jpg <br>| | |--
img04.jpg <br>| | |-- img05.gif <br>| | |-- img06.gif <br>| | |-- img07.gif
<br>| | |-- img08.gif <br>| | |-- img09.gif <br>| | |-- img10.gif <br>|
| |-- img11.gif <br>| | |-- img12.gif <br>| | |-- img13.gif <br>| | |--
img14.gif <br>| | |-- img15.gif <br>| | |-- img16.gif <br>| | |-- img17.gif
<br>| | |-- img18.gif <br>| | |-- img19.gif <br>| | |-- img20.gif <br>|
| `-- spacer.gif <br>| |-- layout.css <br>| `-- license.txt <br>|-- site
<br>| |-- apt <br>| | `-- index.apt <br>| `-- site.xml <br>`-- test
<br>|-- conf <br>| |-- testng.xml <br>| `-- webdefault.xml <br>|--
java <br>| `-- PLACEHOLDER <br>`-- resources <br>`-- PLACEHOLDER <br>
<br>25 directories, 44 files <br>/tmp <br></td></tr>
            <tr><td class="diff-unchanged" >$ <br>{noformat} <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >Once it is created, you can load it
into any IDE and start coding, or use {{mvn jetty:run{}}}{footnote}Jetty is a well-known,
open-source, high-performance servlet container. Jetty starts up quickly, and implements the
official Servlet specification very closely.{footnote}. Again, more one-time downloads, but
then you can open your browser to [http://localhost:8080] to run the application. <br>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">For
more information on this, try the [Tapestry Tutorial|TAPESTRY:Tutorial] which goes into more
detail about setting up your project, as well as loading it into Eclipse ... then continues
on to teach you more about Tapestry. <br> <br></td></tr>
            <tr><td class="diff-unchanged" >h2. More <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
</div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h2><a name="GettingStarted-Seeitlive%21"></a>See it live !</h2>

<p>You can play with Tapestry via our live demonstration applications. To start you
can have a look at the <a href="http://tapestry.zones.apache.org:8180/tapestry5-hotel-booking/"
class="external-link" rel="nofollow">Hotel Booking</a> that has been developed by
contributors and committers. The whole source code is available at <a href="http://github.com/ccordenier/tapestry5-hotel-booking"
class="external-link" rel="nofollow">github</a> so you can download and play with

<h2><a name="GettingStarted-CreateyourfirstTapestryproject"></a>Create your
first Tapestry project</h2>

<p>The easiest way to get started is to use <a href="http://maven.apache.org" class="external-link"
rel="nofollow">Apache Maven</a> to create your initial project; Maven can use an
<em>archetype</em> (a kind of project template) to create a bare-bones Tapestry
application for you.</p>

<p>One you have Maven installed, execute the command </p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
<pre>mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org

<p>Maven will (after performing a large number of one-time downloads) ask you questions
about how to create the new project, including a group id (like a package name) and an artifact
id for your new project.</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
<pre>$ mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:generate] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: http://tapestry.apache.org -&gt; quickstart (Tapestry 5.2.1-SNAPSHOT Quickstart Project)
2: http://tapestry.apache.org -&gt; tapestry-archetype (Tapestry 4.1.6 Archetype)
Choose a number: : 1
Choose version:
1: 5.0.19
3: 5.2.0
4: 5.2.1-SNAPSHOT
Choose a number: : 3
Define value for property 'groupId': : com.example
Define value for property 'artifactId': : newapp
Define value for property 'version': 1.0-SNAPSHOT:
Define value for property 'package': com.example: com.example.newapp
Confirm properties configuration:
groupId: com.example
artifactId: newapp
version: 1.0-SNAPSHOT
package: com.example.newapp
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25 seconds
[INFO] Finished at: Tue Aug 17 14:01:50 PDT 2010
[INFO] Final Memory: 16M/81M
[INFO] ------------------------------------------------------------------------

<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/forbidden.gif" width="16"
height="16" align="absmiddle" alt="" border="0"></td><td>The exact content
and layout of project generated from the archetype will change across different releases of

<p>Once it is created, you can load it into any IDE and start coding, or use <tt>mvn
jetty:run</tt><style type='text/css'>
.FootnoteMarker, .FootnoteNum a {
  background: transparent url(/confluence/download/resources/com.adaptavist.confluence.footnoteMacros:footnote/gfx/footnote.png)
no-repeat top right;
  padding: 1px 2px 0px 1px;
  border-left: 1px solid #8898B8;
  border-bottom: 1px solid #6B7C9B;
  margin: 1px;
  text-decoration: none;
.FootnoteNum a {
  margin-top: 2px;
  margin-right: 0px;
.FootnoteNum {
  font-size: x-small;
  text-align: right;
  padding-bottom: 4px;
.footnote-th1 {
  text-align: right;
.Footnote {
  padding-left: 7px;
  margin-bottom: 4px;
  border: 1px none #DDDDDD;
  writingMode: tb-rl;
.accessibility {
     display: none;
     visibility: hidden;
@media aural,braille,embossed {
        .FootnoteMarker, .FootnoteNum a {
         border: 1px solid #000000;
         background: #ffffff none;
    .accessibility {
         display: run-in;
         visibility: visible;
<script type='text/javascript' language='JavaScript'>
var effectInProgress = {};
var despamEffect = function (id,effectType,duration) {
  if ((effectInProgress[id]) || (typeof(Effect)=="undefined") || (typeof(Effect[effectType])=="undefined"))
  new Effect[effectType](id);
var oldFootnoteId = '';
var footnoteHighlight = function(id,pulsateNum) {
  if (oldFootnoteId!='') document.getElementById('Footnote'+oldFootnoteId).style['borderStyle']
= 'none';
  oldFootnoteId = id;
  document.getElementById('Footnote'+id).style['borderStyle'] = 'solid';
  if (pulsateNum) despamEffect('FootnoteNum'+id,'Pulsate',3)
var footnoteMarkerHighlight = function(id) {
  if (oldFootnoteId!='') document.getElementById('Footnote'+oldFootnoteId).style['borderStyle']
= 'none';
  oldFootnoteId = '';

<sup id='FootnoteMarker1'>
    <a name='FootnoteMarker1'
        alt='Footnote: Click here to display the footnote'
        title='Footnote: Click here to display the footnote'
. Again, more one-time downloads, but then you can open your browser to <a href="http://localhost:8080"
class="external-link" rel="nofollow">http://localhost:8080</a> to run the application.</p>

<p>For more information on this, try the <a href="/confluence/display/TAPESTRY/Tutorial"
title="Tutorial">Tapestry Tutorial</a> which goes into more detail about setting
up your project, as well as loading it into Eclipse ... then continues on to teach you more
about Tapestry.</p>

<h2><a name="GettingStarted-More"></a>More</h2>

<p>Learn more about <a href="/confluence/display/TAPESTRY/Principles" title="Principles">Tapestry
Philosophy</a> and then checkout our full <a href="/confluence/display/TAPESTRY/Documentation"
title="Documentation">Documentation</a> page on which you will find a lot of resources
written by committers and contributors.</p>

<h2><a name="GettingStarted-ObtainHelp"></a>Obtain Help</h2>

<p>Tapestry has an active user mailing list on which you can find a lot of valuable
support. You can subscribe <a href="mailto:users-subscribe@tapestry.apache.org" class="external-link"
rel="nofollow">users-subscribe@tapestry.apache.org</a> or look for an answer in the
<a href="http://markmail.org/search/list:org.apache.tapestry.users" class="external-link"

<p>Having trouble?  Try our <a href="/confluence/display/TAPESTRY/Frequently+Asked+Questions"
title="Frequently Asked Questions">Frequently Asked Questions</a>.</p>

<p><table class='Footnotes' style='width: 100%; border:none;' cellspacing='0' cellpadding='0'
summary='This table contains one or more notes for references made elsewhere on the page.'>
  <caption class='accessibility'>Footnotes</caption>
  <thead class='accessibility'>
    <tr class='accessibility'>
      <th class='accessibility' id='footnote-th1'>Reference</th>
      <th class='accessibility' id='footnote-th2'>Notes</th>
    <tr name='Footnote1'>
      <td valign='top' class='FootnoteNum' headings='footnote-th1'>
        <a href='#FootnoteMarker1'
          alt='Footnote: Click to return to reference in text'
          title='Footnote: Click to return to reference in text'
      <td id='Footnote1'
          Jetty is a well-known, open-source, high-performance servlet container. Jetty starts
up quickly, and implements the official Servlet specification very closely.
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        <a href="https://cwiki.apache.org/confluence/display/TAPESTRY/Getting+Started">View
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=23334911&revisedVersion=8&originalVersion=7">View

View raw message