Bootstrapping NorthernWind with Maven

If you have a basic knowledge of Maven, the fastest and easiest way to try out NorthernWind is by means of a "site archetype". You don't have to install anything: Maven will download a simple site example and the required code, then configure and run everything.

From the command line, type the following command:

[Mistral-MacOSX:/tmp] fritz% mvn archetype:generate \
                    -DarchetypeGroupId=it.tidalwave.northernwind \

You should see the following output (plus some downloading, if you don't have all the required stuff on your local repository). The parts in boldface are information that you should enter by means of the keyboard:

[INFO] Scanning for projects...
                    [INFO] ------------------------------------------------------------------------
                    [INFO] Building Maven Stub Project (No POM) 1
                    [INFO] ------------------------------------------------------------------------
                    [INFO] >>> maven-archetype-plugin:2.1:generate (default-cli) @ standalone-pom >>>
                    [INFO] <<< maven-archetype-plugin:2.1:generate (default-cli) @ standalone-pom <<<
                    [INFO] --- maven-archetype-plugin:2.1:generate (default-cli) @ standalone-pom ---
                    [INFO] Generating project in Interactive mode
                    [INFO] Archetype [it.tidalwave.northernwind:simple-project-site-archetype-1:1.1] found in catalog local
                    Define value for property 'groupId': : acme
                    Define value for property 'artifactId': : acme-website
                    Define value for property 'version': 1.0-SNAPSHOT: : 
                    Define value for property 'package': acme: : 
                    Define value for property 'addthisPubid': : id1
                    Define value for property 'author': : Fabrizio Giudici
                    Define value for property 'copyrightHolder': : Acme Inc.
                    [INFO] Using property: creationTime = 2012-01-21T20:00:00.000+01:00
                    Define value for property 'googleAnalyticsId': : UA-XXXX-XXXX
                    Define value for property 'googleSiteVerification': : googleXXXXXXXXXX
                    Define value for property 'siteName': : Acme Website
                    Define value for property 'siteUrl': : http://acme
                    Confirm properties configuration:
                    groupId: acme
                    artifactId: acme-website
                    version: 1.0-SNAPSHOT
                    package: acme
                    addthisPubid: id1
                    author: Fabrizio Giudici
                    copyrightHolder: Acme Inc.
                    creationTime: 2012-01-21T20:00:00.000+01:00
                    googleAnalyticsId: UA-XXXX-XXXX
                    googleSiteVerification: googleXXXXXXXXXX
                    siteName: Acme Website
                    siteUrl: http://acme
                     Y: : Y
                    [INFO] ----------------------------------------------------------------------------
                    [INFO] Using following parameters for creating project from Archetype: simple-project-site-archetype-1:1.1
                    [INFO] ----------------------------------------------------------------------------
                    [INFO] Parameter: groupId, Value: acme
                    [INFO] Parameter: artifactId, Value: acme-website
                    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
                    [INFO] Parameter: package, Value: acme
                    [INFO] Parameter: packageInPathFormat, Value: acme
                    [INFO] Parameter: siteUrl, Value: http://acme
                    [INFO] Parameter: googleSiteVerification, Value: googleXXXXXXXXXX
                    [INFO] Parameter: author, Value: Fabrizio Giudici
                    [INFO] Parameter: groupId, Value: acme
                    [INFO] Parameter: googleAnalyticsId, Value: UA-XXXX-XXXX
                    [INFO] Parameter: addthisPubid, Value: id1
                    [INFO] Parameter: creationTime, Value: 2012-01-21T20:00:00.000+01:00
                    [INFO] Parameter: siteName, Value: Acme Website
                    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
                    [INFO] Parameter: package, Value: acme
                    [INFO] Parameter: artifactId, Value: acme-website
                    [INFO] Parameter: copyrightHolder, Value: Acme Inc.
                    [INFO] project created from Archetype in dir: /tmp/acme-website
                    [INFO] ------------------------------------------------------------------------
                    [INFO] BUILD SUCCESS
                    [INFO] ------------------------------------------------------------------------
                    [INFO] Total time: 1:09.596s
                    [INFO] Finished at: Mon Jan 23 21:58:48 CET 2012
                    [INFO] Final Memory: 7M/81M
                    [INFO] ------------------------------------------------------------------------

NorthernWind, the web site example and a small webserver will only take about 18MB; more stuff might be downloaded if not already present in your system. At the end of the process, a simple website is generated out of a skeleton and populated with the data you provided (including an identifier for using Google Analytics, a verification file for Google WebMaster Tools and an identifier for the AddThis service).

Now you should just run:

[Mistral-MacOSX:/tmp] fritz% cd acme-website
[Mistral-MacOSX:/tmp] fritz% mvn initialize

This will start the webserver (ignore an exception that will appear on the console): after a few seconds, the web site will be available at http://localhost:8080. Point your browser and navigate through the website.

Please note that running Maven with archetypes can execute downloaded code in your computer, as in this case. Pay always attention to what you're doing to avoid running malicious code.