web-dev-qa-db-fra.com

SBT: démarrer une ligne de commande «exécuter» de la classe principale d'un projet non par défaut

Je commence à utiliser sbt construire mon Scala (et gérer les dépendances). Pour autant que je sache si j'utilise

$ sbt run <args>

sur la ligne de commande, cela exécutera la classe principale du projet principal.

Est-il possible de `` s'exécuter '' dans tout autre projet à partir de la ligne de commande, c'est-à-dire pas en mode de session interactive? (Je pense à quelque chose qui pourrait ressembler à $ sbt project <proj> run <args> ou peu importe...)

Ce que je ferais en mode interactif est le suivant:

$ sbt
> project <projectname>
> run <args>

Cela semble être assez simple, mais je ne trouve aucune documentation décrivant ce comportement. Des conseils seraient très appréciés ...

61
fgysin

Il suffit de citer chaque commande (comme dans le deuxième exemple sur cette page ), donc dans votre cas ce serait:

$ sbt "project foo" "run arg1 arg2"
92
Moritz

$ sbt foo/run arg1 arg2 fonctionne aussi

41
Guillaume Massé

Cela marche: sbt "runMain com.example.Hello arg1" ou sbt "run-main com.example.Hello arg1".

Voir ici pour référence: https://blog.ssanj.net/posts/2016-03-02-how-to-run-a-specific-main-class-with-parameters-through-sbt.html

14

A travaillé pour moi:

$ sbt "run someNumber"

Cela peut également être utile:

def main(args: Array[String]) {
    val n = args(0).toInt
}
9
randompast