### Archetype to scaffold projects for the ___Spark in Action___ book

<img src="http://www.manning.com/bonaci/bonaci_cover150.jpg"
 alt="The book cover" title="Spark in Action cover page" align="right" />  
However unlikely, you maybe still haven't purchased the book, so here's the link: [Spark in Action](http://t.co/8dVXGkfits). Use the coupon code `bonaci39` for 39% off.
BTW, you don't need to try `bonaci100`, it won't work :)  
Thanks
<br><br><br><br>


#### Eclipse:
1. `File > New > Project... > Maven > Maven Project`  
2. Click `Next` on the first screen of the _New project_ wizard  
3. Select `Configure... > Add Remote Catalog...`  
4. Enter the following URL in the `Catalog file` field: https://github.com/spark-in-action/scala-archetype-sparkinaction/raw/master/archetype-catalog.xml  
      Enter `Spark in Action` in the `Description` field  
5. After you close the dialog, choose the `Spark in Action` catalog in the `Catalog` dropdown list
6. In the next dialog simply enter you project details and confirm with `Finish`. In case of problems with this step (such as IDE not being able to locate the POM file) try to use a different URL in the step 4: https://raw.githubusercontent.com/spark-in-action/scala-archetype-sparkinaction/master/archetype-catalog.xml
7. Once the new projects generates change the Scala version to 2.10.5:
      Right click on the generated project and select:
      `Scala > Set the Scala Installation > Fixed Scala Installation 2.10.5.(bundled)`

#### IntelliJ IDEA:
1. `File > New > Project... > Maven`
2. Select `Create from Archetype` and click on `Add Archetype` button
3. Fill-in the `Add archetype` dialog:
   * `GroupId`:    `org.sparkinaction`
   * `ArtifactId`: `scala-archetype-sparkinaction`
   * `Version`:    `0.13`
   * `Repository`: `https://github.com/spark-in-action/scala-archetype-sparkinaction/raw/master`
   And confirm with OK.
4. In the list of archetypes, find `org.sparkinaction`, the one that you just added, expand it and select the archetype with the version and click `Next`
5. Enter parameters for your new project:
   * `GroupId`:    `org.sia`
   * `ArtifactId`: `chapter-03-app`
   * `Version`:    `0.1-SNAPSHOT`
6. In the next screen, just confirm with `Next`
7. In the last screen, enter `Chapter03App` as the project name and click `Finish`


 <small>
 More detailed, tutorial-style instructions, with all the prerequisites are in chapter 3 of the book.
 </small>

 #### From the terminal (interactive mode):
 <small>
 Select the only possible option (1) and answer subsequent questions.
 </small>

```sh
mvn archetype:generate \
  -DarchetypeCatalog=https://github.com/spark-in-action/scala-archetype-sparkinaction/raw/master/archetype-catalog.xml \
  -DarchetypeRepository=https://github.com/spark-in-action/scala-archetype-sparkinaction/raw/master
```


 #### From the terminal or a shell script (batch mode):
 <small>
 Don't forget to change the parameter values in the last line.
 </small>

```sh
mvn archetype:generate -B \
    -DarchetypeCatalog=https://github.com/spark-in-action/scala-archetype-sparkinaction/raw/master/archetype-catalog.xml \
    -DarchetypeRepository=https://github.com/spark-in-action/scala-archetype-sparkinaction/raw/master \
    -DarchetypeGroupId=org.sparkinaction \
    -DarchetypeArtifactId=scala-archetype-sparkinaction \
    -DarchetypeVersion=0.13 \
    -DgroupId=com.sia -DartifactId=chapter03App -Dversion=0.1-SNAPSHOT -Dpackage=com.sia
```


#### Generated project example usage
*(run `mvn scala:help` for the full list of commands)*

In Eclipse, you can run the generated project by simply doing `Shift+Alt+x s` (while positioned in `App.scala`), which is the shortcut for `Run As > Scala Application`.

You can also run it from the command line or from Eclipse Maven _Run configuration_ with these _goals_ (adjust main class if needed):

```sh
mvn scala:compile
mvn scala:run -DmainClass=com.sia.Chapter03App
```

If you choose to purchase the book, thank you :)