wicket.GettingStarted

Overview
This page describes the steps I follow to setup an Eclipse-based project for developing a new Wicket project. These steps are really just a detailed version of what you can find at: [|the Wicket quickstart page].

Create a Space
code macintosh-4% cd ~/src /Users/schuchert/src macintosh-4% mkdir CheesrWorkspace macintosh-4% cd CheesrWorkspace /Users/schuchert/src/CheesrWorkspace macintosh-4% git init Initialized empty Git repository in /Users/schuchert/src/CheesrWorkspace/.git/ macintosh-4% code
 * Begin by creating a source directory. For this example, I'll create a directory called CheesrWorkspace (example project from the [|Wicket in Action] book.

Note: I'll be using git for revision control, so I also added in that last step to init this newly-created subdirectory as a git repository.

Create Project Using Maven 2
There's a simple form you can fill out on [|the Wicket quickstart page] to create a maven command that will create the project structure.

code mvn archetype:create -DarchetypeGroupId=org.apache.wicket \ -DarchetypeArtifactId=wicket-archetype-quickstart \ -DarchetypeVersion=1.4.1 -DgroupId=com.om -DartifactId=Cheesr code
 * Fill out the form (I used com.om for the groupid and Cheesr for the artifactid), which produces the following command:

code macintosh-4% pwd /Users/schuchert/src/CheesrWorkspace macintosh-4% mvn archetype:create -DarchetypeGroupId=org.apache.wicket \ -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=1.4.1 \ -DgroupId=com.om -DartifactId=Cheesr [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. '. [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: com.om [INFO] [INFO] Using following parameters for creating OldArchetype: wicket-archetype-quickstart:1.4.1 [INFO] [INFO] Parameter: groupId, Value: com.om [INFO] Parameter: packageName, Value: com.om [INFO] Parameter: package, Value: com.om [INFO] Parameter: artifactId, Value: Cheesr [INFO] Parameter: basedir, Value: /Users/schuchert/src/CheesrWorkspace [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] ********************* End of debug info from resources from generated POM *********************** [INFO] OldArchetype created in dir: /Users/schuchert/src/CheesrWorkspace/Cheesr [INFO] [INFO] BUILD SUCCESSFUL [INFO] [INFO] Total time: 2 seconds [INFO] Finished at: Tue Sep 22 23:55:13 CDT 2009 [INFO] Final Memory: 11M/79M [INFO] macintosh-4% code
 * Execute that command:

Update POM
By default, the project depends on JUnit 3.x, so I update the POM.xml to instead depend on a newer version of JUnit.

code macintosh-4% cd Cheesr /Users/schuchert/src/CheesrWorkspace/Cheesr macintosh-4% ls pom.xml		src/ macintosh-4% vi pom.xml code
 * Edit pom.xml under the Cheesr directory

code 3.8.2 code code 4.7 code
 * Search for "junit"
 * Update the following line:
 * Use a newer version:

Create Eclipse Project Information
Now that you have an updated POM, you can create the eclipse project. The [|the Wicket quickstart page] has instructions at the bottom.

code macintosh-4% pwd /Users/schuchert/src/CheesrWorkspace/Cheesr macintosh-4% mvn eclipse:eclipse -DdownloadSources=true [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'eclipse'. [INFO] [INFO] Building quickstart [INFO]   task-segment: [eclipse:eclipse] [INFO] [INFO] Preparing eclipse:eclipse [INFO] No goals needed for project - skipping [INFO] [eclipse:eclipse] [INFO] Using Eclipse Workspace: null [INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER [INFO] Resource directory's path matches an existing source directory. Resources will [INFO] Resource directory's path matches an existing source directory. Resources will [INFO] Wrote settings to /Users/schuchert/src/CheesrWorkspace/Cheesr/.settings/org.eclipse.jdt.core.prefs [INFO] Wrote Eclipse project for "Cheesr" to /Users/schuchert/src/CheesrWorkspace/Cheesr. [INFO] Javadoc for some artifacts is not available. Please run the same goal with the -DdownloadJavadocs=true parameter List of artifacts without a javadoc archive: o junit:junit:4.7 o log4j:log4j:1.2.14 o org.apache.wicket:wicket:1.4.1 o org.slf4j:slf4j-api:1.4.2 o org.mortbay.jetty:jetty:6.1.4 o org.mortbay.jetty:jetty-util:6.1.4 o org.mortbay.jetty:servlet-api-2.5:6.1.4 o org.mortbay.jetty:jetty-management:6.1.4 o mx4j:mx4j:3.0.1 o mx4j:mx4j-tools:3.0.1 o org.slf4j:slf4j-log4j12:1.4.2
 * Make sure you are in the project directory created by the initial mvn command.
 * Execute: mvn eclipse:eclipse -DdownloadSources=true

[INFO] [INFO] BUILD SUCCESSFUL [INFO] [INFO] Total time: 3 seconds [INFO] Finished at: Wed Sep 23 00:02:17 CDT 2009 [INFO] Final Memory: 14M/79M [INFO] macintosh-4% code

Start Eclipse and Create Java Project
Now we need to start Eclipse and make a few minor corrections:


 * Start Eclipse.
 * When asked for a directory, select the original directory you created (in my case, that's /Users/schuchert/src/CheesrWorkspace)
 * Import existing project:
 * Right-click in Project Explorer
 * Select Import::Import...
 * Open General
 * Select Existing Projects into Workspace
 * Click **Next**
 * Click **Browse**
 * Click **Open**
 * Click **Finish**

The generated classpath uses a classpath variable: M2_REPO. Fix that next:
 * Go to the Eclipse Preferences Window (windows->Window:Preferences, Mac->Command,)
 * In the filter, type classpath
 * Select Classpath Variables under Java:Build Path
 * Click **New**
 * For the name, enter M2_REPO
 * For the path, enter the location of your Maven 2 repository. (In my case, it is ~/.m2/repository, but you must enter the full path, so it is actually: /Users/schuchert/.m2/repository.)
 * Click **Ok**
 * When asked to rebuild all, select **Yes**

Verify Everything Works
You can start you server to verify that it is working: code Wicket Quickstart Archetype Homepage
 * Find the Start.java class under src/test/java (in the one package created in the first step above)
 * Run it as a Java application
 * Start a browser (or browse to the following URL in Eclipse): http://localhost:8080/
 * You should see something like the following:

If you see this message wicket is properly configured and running code

Congratulations, you are done.