Scala SBT: autonome jar

La réponse: Rendre autonome bocal avec de Simples outils de construction semble que ce dont j'ai besoin, mais il n'a pas suffisamment d'informations pour moi, c'est donc une suite.

(1) Comment puis-je adapter la réponse à mon besoin? Je ne comprends pas ce besoin d'être changé.

(2) Quelle commande dois-je exécuter pour créer la version autonome de pot?

(3) Où puis-je trouver le pot après qu'il a été créé?


Ce que j'ai essayé:

  • Coller le code dans la réponse textuellement dans mon: project/build/dsg.scala fichier. Le fichier a maintenant un

    class ForkRun(info: ProjectInfo) extends DefaultProject(info)

    (avant, utilisé pour l'exécution de projets dans une autre VM à partir de SBT) et le nouveau:

    trait AssemblyProject extends BasicScalaProject

    de la liés réponse.

  • J'ai aussi essayé de coller le corps (toutes defs et la lazy val de la AssemblyProject dans le corps de ForkRun.

Pour créer un jar j'ai couru package à la SBT rapide et obtenez:

[info] Packaging ./target/scala_2.8.1/dsg_2.8.1-1.0.jar ...
[info] Packaging complete.

J'ai donc essayé de courir le dsg_2.8.1-1.0.jar du shell via:

java -jar dsg_2.8.1-1.0.jar 

Mais j'obtiens:

Failed to load Main-Class manifest attribute from
dsg_2.8.1-1.0.jar

- Ce que cela pourrait être causé par le fait d'avoir plusieurs points d'entrée dans mon projet? Je sélectionne à partir d'une liste lorsque j'exécute run de la SBT invite. Peut-être que j'ai besoin de spécifier la valeur par défaut lors de la création du package?

InformationsquelleAutor dsg | 2011-05-17