I use Maven 3 to create a new Scala project. As far as I understand, the way to create a new project with Maven is by:
mvn archetype:generate
Maybe I'm missing out something, but I couldn't find even one option that offers the simplest Scala project (like the one received by lein new app ...
for Clojure, for example). Any help here?
You should be able to use mvn archetype:generate
. You can choose, e.g., org.scala-tools.archetypes:scala-archetype-simple
. You need to put in the number number next to the archetype name in the output of your mvn archetype:generate
command because the numbering can change over time. There are also other options like eu.stratosphere:quickstart-scala
as documented in this article.
They may be somewhat outdated, though. I personally prefer writing my pom.xml
files manually. For reference, here is a minimal pom file for use with Scala 2.11.6 and Scalatest 2.2.5:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-artifact</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<encoding>UTF-8</encoding>
<scala.version>2.11.6</scala.version>
</properties>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_2.11</artifactId>
<version>2.2.5</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.scalatest</groupId>
<artifactId>scalatest-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
</configuration>
<executions>
<execution>
<id>test</id>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>