запуск проекта Maven Scala - PullRequest
15 голосов
/ 20 июля 2011

Я начинаю изучать scala и mongo, моя IDE - это intellij IDEA.Я создал проект scala с использованием

mvn:archetype-generate

и набрал в IDEA простую программу hello world с некоторыми арифметическими параметрами, такими как

println(5)
val i = 1+2
println(i)

Затем я скомпилировал ее с помощью

mvn compile

В нем сказано:

build success

Но теперь как мне выполнить мое приложение и проверить вывод.Нет ни одной статьи, которая объясняет, как начать с scala, maven, idea, и я совершенно новичок во всем этом.любая помощь будет полезна для меня.

1 Ответ

30 голосов
/ 20 июля 2011

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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...