<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <title>Create a Wicket Quickstart | Apache Wicket</title>
        <meta name="viewport" content="width=device-width, initial-scale=1" />

        <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon" />
        <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
        <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />

		<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

    </head>

    <body class="quickstart">
        <div class="header default">
    <div class="l-menu-container">
<nav class="mainmenu">
    <ul>
		<!-- /start/quickstart.html || /start/quickstart -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /start/quickstart -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /start/quickstart -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /start/quickstart -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /start/quickstart -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /start/quickstart -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /start/quickstart -->
    	<li class=""><a href="/apache">Apache</a></li>
    </ul>
</nav>
        <div class="logo">
    <a href="/"><img src="/img/logo-apachewicket.svg" alt="Apache Wicket"></a>
</div>
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>Create a Wicket Quickstart</h1>
            <h2>With the quickstart you’ll be up and running in seconds</h2>
            <p>Use the following wizard to generate a Quick Start Project using Maven. Paste the generated command line into a shell (DOS prompt or unix shell) and create a project with Wicket in a jiffy.</p>
        </header>
        <section class="l-one-third right">
            <div id="toc" class="toc"><div id="toc-title"><h2>Table of Contents</h2></div><ul><li class="toc--level-1 toc--section-1"><a href="#before-you-start"><span class="toc-number">1</span> <span class="toc-text">Before you start</span></a></li><li class="toc--level-1 toc--section-2"><a href="#5-small-steps-to-a-web-application"><span class="toc-number">2</span> <span class="toc-text">5 small steps to a web application</span></a></li><li class="toc--level-1 toc--section-3"><a href="#quick-start-wizard"><span class="toc-number">3</span> <span class="toc-text">Quick Start Wizard</span></a></li><li class="toc--level-1 toc--section-4"><a href="#import-the-quick-start-in-your-ide"><span class="toc-number">4</span> <span class="toc-text">Import the Quick Start in your IDE</span></a><ul><li class="toc--level-2 toc--section-5"><a href="#eclipse"><span class="toc-number">4.1</span> <span class="toc-text">Eclipse</span></a></li><li class="toc--level-2 toc--section-6"><a href="#intellij-idea"><span class="toc-number">4.2</span> <span class="toc-text">IntelliJ IDEA</span></a></li><li class="toc--level-2 toc--section-7"><a href="#netbeans"><span class="toc-number">4.3</span> <span class="toc-text">Netbeans</span></a></li></ul></li></ul></div>
        </section>
        <section class="l-two-third left">
            <script type="text/javascript" charset="utf-8" src="/javascript/ZeroClipboard-1.1.7.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
      ZeroClipboard.setDefaults( { moviePath: '/javascript/ZeroClipboard-1.1.7.swf' } );
      var clip = new ZeroClipboard(document.getElementById("cmdLineCopy"));
      clip.on( 'noflash', function ( client, args ) {
        document.getElementById("cmdLineCopy").style.display = 'none';
      });
      clip.on( 'wrongflash', function ( client, args ) {
        document.getElementById("cmdLineCopy").style.display = 'none';
      });
      $(document).resize(function() {
        clip.reposition();
      });
    });
    function changeIt()
    {
		var groupId = document.getElementById("groupId").value;
		var artifactId = document.getElementById("artifactId").value;
		var version = document.getElementById("version").value;
		var appserver = document.getElementById("appserver").value;
		var cmd;
		if(version.match(/^1\.[34]/))
			cmd = 'mvn archetype:create -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=' + version + ' -DgroupId=' + groupId + ' -DartifactId=' + artifactId;						
		else if(version.match(/.*SNAPSHOT/))
			cmd = 'mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=' + version + ' -DgroupId=' + groupId + ' -DartifactId=' + artifactId;		
		else
			cmd = 'mvn archetype:generate -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=' + version + ' -DgroupId=' + groupId + ' -DartifactId=' + artifactId;			
		if (version.match(/.*SNAPSHOT/))
			cmd += ' -DarchetypeRepository=https://repository.apache.org/content/repositories/snapshots/';
		else
			cmd += ' -DarchetypeRepository=https://repository.apache.org/';
		if (appserver === 'wildfly')
			cmd += ' -Dlog4j.properties=wildfly-doesnt-need-log4j.properties';
		cmd += ' -DinteractiveMode=false'; 
		document.getElementById("cmdLine").value = cmd;
    }
  </script>
<h2 id="before-you-start">Before you start</h2>
<p>The Quick Start Wizard uses <a href="http://maven.apache.org">Apache Maven</a> to
make it really fast to get started. You should have Maven installed and
working before you can use the Quick Start wizard.</p>
<h2 id="5-small-steps-to-a-web-application">5 small steps to a web application</h2>
<p>Use the following steps to quickly generate a project to get you
started:</p>
<ol>
  <li>Fill in the Maven coordinates for your project in the wizard and 
select the appropriate Wicket version</li>
  <li>Copy the generated commandline to your clipboard and paste it in a 
terminal (or a DOS box)</li>
  <li>Open the project in your IDE of choice</li>
  <li>Start the <code class="language-plaintext highlighter-rouge">Start</code> class in the <em>src/test/java</em> folder</li>
  <li>Open your browser to <a target="_blank" href="http://localhost:8080">http://localhost:8080</a></li>
</ol>
<p>And you’re done!</p>
<h2 id="quick-start-wizard">Quick Start Wizard</h2>
<p>Fill in your project details in the wizard below and copy the generated
command line to your clipboard.</p>
<div class="quickstart-wizard">
  <div>
    <label title="Base Package" for="groupId">Group ID</label>
    <input type="text" value="com.mycompany" onkeyup="changeIt();" id="groupId" />
  </div>
  <div>
    <label title="Project Name" for="artifactId">Artifact ID</label>
    <input type="text" value="myproject" onkeyup="changeIt();" id="artifactId" />
  </div>
  <div>
    <label title="Wicket Version" for="version">Wicket Version</label>
    <select onchange="changeIt();" id="version">
	<option value="9.0.0-M6-SNAPSHOT">9.0.0-M6-SNAPSHOT</option>
	<option value="8.9.0-SNAPSHOT">8.9.0-SNAPSHOT</option>
	<option value="7.17.0-SNAPSHOT">7.17.0-SNAPSHOT</option>
	<option value="6.31.0-SNAPSHOT">6.31.0-SNAPSHOT</option>
	<option value="1.5-SNAPSHOT">1.5-SNAPSHOT</option>
	<option value="9.0.0-M5">9.0.0-M5</option>
	<option value="8.8.0" selected="selected">8.8.0</option>
	<option value="7.16.0">7.16.0</option>
	<option value="1.4.23">1.4.23</option>
	<option value="1.5.16">1.5.16</option>
	<option value="6.30.0">6.30.0</option>
    </select>
  </div>
  <div>
<label for="appserver" title="Server to deploy on">Server to deploy on</label>
<select id="appserver" onchange="changeIt();">
	<option value="any" selected="selected">Any but Wild Fly</option>
	<option value="wildfly">Wild Fly (JBoss 8.x)</option>
</select>
</div>
  <div>
    <label id="cmdLabel" for="cmdLine">generated command line</label>
    <textarea onfocus="this.select();" id="cmdLine" style="resize: vertical;"></textarea>
    <script>changeIt();</script>
  </div>
  <div>
    <button data-clipboard-target="cmdLine" class="clip_button" id="cmdLineCopy">copy to clipboard</button>
  </div>
</div>
<p><br /></p>
<p>With the generated command line on your clipboard open up a terminal
window (or DOS box) and navigate to where you want the project to be
generated (e.g. for Eclipse users this would be your workspace folder).
Paste the command line into your terminal window and press «enter» to
execute the command.</p>
<h4 id="result-of-the-maven-command">Result of the Maven command</h4>
<p>Executing the Maven command line will result the following directory
structure:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.\myproject
    |   pom.xml
    |
    \---src
        +---main
        |   +---java
        |   |   \---com
        |   |       \---mycompany
        |   |               HomePage.html
        |   |               HomePage.java
        |   |               WicketApplication.java
        |   |
        |   +---resources
        |   |       log4j.properties
        |   |
        |   \---webapp
        |       \---WEB-INF
        |               web.xml
        |
        \---test
            \---java
                \---com
                    \---mycompany
                            Start.java
</code></pre></div></div>
<p>It might be different depending on your settings (and version of
Wicket), but this is basically the standard layout for web projects.</p>
<h2 id="import-the-quick-start-in-your-ide">Import the Quick Start in your IDE</h2>
<p>The Wicket Quick Start uses Apache Maven to make it really fast to get
started. You should have Maven installed and working before you can use
the Quick Start wizard.</p>
<h3 id="eclipse">Eclipse</h3>
<p>For Eclipse you should generate the Quick Start project within your
workspace folder. You also need to ensure that you have m2eclipse
installed in order to import the project. To import the project you
select “Import existing project” from the File menu, and select the
folder of your generated Quick Start project.</p>
<h3 id="intellij-idea">IntelliJ IDEA</h3>
<p>IntelliJ IDEA has native support for Maven projects. You just point the
open project dialog to the place where you generated the Quick Start
project and open the pom.xml file. IDEA will then open the project as
any other Java project.</p>
<h3 id="netbeans">Netbeans</h3>
<p>Netbeans has native support for Maven projects. You just point the open
project dialog to the place where you generated the Quick Start project
and open the pom.xml file. Netbeans will then open the project as any
other Java project.</p>
        </section>
    </div>
</main>
        <footer class="l-container">
            <div class="l-full">
   	<img src="/img/asf_logo_url.svg" style="height:90px; float:left; margin-right:10px;">
    <div style="margin-top:12px;">Copyright © 2020 — The Apache Software Foundation. Apache Wicket, Wicket, Apache, the Apache feather logo, and the Apache Wicket project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
</div>
        </footer>
    </body>

</html>
