As much as we would like to dive into Tapestry right now, we must first talk about setting up your development environment. The joy and the pain of Java development is the volume of choice available. There's just a bewildering number of JDKs, IDEs and other TLAs (Three Letter Acronyms) out there.
Let's talk about a stack of tools, all open source and freely available, that you'll need to setup. Likely you have some of these, or some version of these, already on your development machine.
JDK 1.5 or Newer
Tapestry 5 makes use of features of Java Development Kit (JDK) version 1.5. This includes Java annotations, and a little bit of Java generics. JDK 1.6 and JDK 1.7 work fine too, as does JDK 1.8 if you're using Tapestry 5.3.8 or newer.
For this tutorial we'll assume you're using Eclipse as your Integrated Development Environment (IDE). Eclipse is a popular IDE, but feel free to adapt these instructions to IntelliJ, NetBeans, or any other.
Eclipse comes in various flavors, and includes a reasonable XML editor built-in. It can be downloaded from the eclipse.org web site. We recommend the latest version of Eclipse IDE for Java Developers (but anything from version 3.7 onward should work fine).
Apache Maven 3
Maven is a software build tool with the ability to automatically download project dependencies (such as the Tapestry JAR files, and the JAR files that Tapestry itself depends on) from one of several central repositories.
Maven is not essential for using Tapestry, but is especially helpful when performing the initial set-up of a Tapestry application.
Eclipse comes with a Maven plugin, M2Eclipse (also known as m2e) with an embedded version of Maven. We'll use that here for simplicity's sake. Alternatively, you could install Maven from http://maven.apache.org/download.html and use it from the command line ("mvn").
Jetty is an open source web server and servlet container available from the Eclipse Foundation. Jetty is designed for high performance and easy embedding in other software. Maven can download it for you and run it automatically, so you DO NOT have to download it for this tutorial. Alternatively, you could download and install the RunJettyRun Eclipse plugin from the Eclipse Marketplace.
You should not have to download this directly; as we'll see, Maven should take care of downloading Tapestry, and its dependencies, as needed.