Maven-Exec-плагин
Попробуйте с этим кодом:
package com.example
object Main {
def main(args: Array[String]) {
println(5)
val i = 1 + 2
println(i)
}
}
Поместите его в /src/main/scala/com/example/Main.scala
и запустите, используя:
$ mvn package exec:java -Dexec.mainClass=com.example.Main
Если вы не хотите передавать mainClass
вручную, вы можете сделать это в конфигурации плагина:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<mainClass>com.example.Main</mainClass>
</configuration>
</plugin>
</plugins>
Есть и другие возможности, это самый простой. Конечно, в IntelliJ вы сможете запускать программу напрямую.
Maven-банка-плагин
Если вы хотите отправить приложение, используйте maven-jar-plugin
, чтобы добавить Main-Class
и Class-Path
записей в манифест:
Main-Class: com.example.Main
Class-Path: lib/scala-library-2.9.0-1.jar lib/slf4j-api-1.6.1.jar ...
Следующая конфигурация делает это, а также копирует все зависимости (включая библиотеку времени выполнения Scala) в target/lib
.
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
<addClasspath>true</addClasspath>
<classpathLayoutType>custom</classpathLayoutType>
<customClasspathLayout>lib/$${artifact.artifactId}-$${artifact.version}$${dashClassifier?}.$${artifact.extension}
</customClasspathLayout>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
Теперь вы можете просто запустить ваше приложение (обратите внимание, что требуется каталог target/lib
):
$ java -jar target/your_app-VERSION.jar
Вы можете отправить свое приложение, просто скопировав JAR-файл вместе с подкаталогом /lib
.
Также см. Exec Maven Plugin и Игра со Scala и Maven .