web-dev-qa-db-fra.com

Comment trouver le projet d'archétype Maven correct pour développer avec Scala dans Eclipse?

J'ai des problèmes à essayer de créer un projet Maven en utilisant Scala (v2.11.6) dans Eclipse (Luna). Les instructions ici indiquent d'installer les deux plugins ci-dessous .

  • Intégration de Maven dans Eclipse
  • connecteur m2Eclipse-scala

Les deux plugins peuvent être installés en utilisant le site de mise à jour m2Eclipse-scala . Voici donc ce que j'ai fait lors de ma première tentative.

  • Télécharger Eclipse Luna (pour les développeurs JavaEE)
  • Installez "les deux" plugins ci-dessus en utilisant le site de mise à jour m2Eclipse-scala.

Lorsque Eclipse se charge, j'essaie de créer un projet Maven, et l'archétype que je veux utiliser est Group Id = net.alchim31.maven, Artifact Id = scala-archetype-simple, Version = 1.5. Cependant, cet archétype n'apparaît jamais lorsque j'entre dans "scala-Arch" dans le champ de texte du filtre.

Le seul projet que je vois est celui avec Group Id = org.scala-tools.archetypes, Artifact Id = scala-archetype-simple, Version = 1.2. Lorsque je sélectionne cet archétype à utiliser, j'obtiens un tas de messages d'erreur dans Eclipse.

  • erreur lors du chargement de ConsoleRunner, Scala signature ConsoleRunner a une mauvaise version attendue: 5.0 trouvé: 4.1 dans ConsoleRunner.class
  • erreur lors du chargement de JUnit4, Scala JUnit4 a une mauvaise version attendue: 5.0 trouvé: 4.1 dans JUnit4.class
  • erreur lors du chargement de la spécification, Scala signature La spécification a une mauvaise version attendue: 5.0 trouvé: 4.1 dans Specification.class

Dans ma deuxième tentative, j'essaie de télécharger le bundle pré-packagé ( Scala IDE pour Eclipse ). Encore une fois, lorsque j'essaie de créer un Scala Maven project, je ne vois pas l'archétype Maven pour Group Id = net.alchim31.maven (uniquement pour Group Id = org.scala-tools.archetypes).

Des idées sur ce que je fais mal ici? Ou où puis-je trouver un projet Vanilla Scala Maven à importer/modifier et utiliser à mes propres fins?

25
Jane Wayne

Voici comment je l'ai fait fonctionner. Il semble que tous les archétypes ne soient pas disponibles, donc basé sur cette réponse , j'ai créé un catalogue distant

Avant

Image showing the original dialog with missing entry

Alors fais ça

Allez dans [Windows] → [Préférences] → [Maven] → [Archétypes] → Add Remote Catalog et créer le catalogue, puis Apply

Image showing "Remote Archetype Catalog" modal window

Pour copier-coller:

Revenez à la création d'un nouveau projet Maven. Sélectionnez le Remote Catalog dans la liste déroulante. Il faudra quelques instants pour rassembler tous les archétypes. Vous pouvez voir la progression tout en bas à droite de l'IDE. Quand c'est fait, vous devriez pouvoir voir les archétypes

Après

Image showing "scala-archetype" entry in the dialog

Créez votre projet avec groupId et artifactId et autres.

Cliquez avec le bouton droit sur le projet, puis dans le menu contextuel [Exécuter en tant que] et rarr [Maven Build]. Dans la boîte de dialogue, saisissez clean package dans les buts. La course. Le projet doit générer et exécuter les tests.

Pour moi au début, j'ai eu une erreur sur la construction. C'est parce que mon environnement par défaut utilise Java 8. Je suis assez nouveau sur Scala, donc je ne suis pas sûr qu'il y ait un problème avec Scala et Java 8 ou pas (je pense que c'est la version Scala dans le pom (2.10.0)). Mais ce que j'ai fait pour le faire fonctionner était il suffit de changer la Java version utilisée dans le IDE en Java 7.

Fondamentalement, allez simplement dans [Windows] → [Préférences] → [Java] → [JRE installés] → Add → [VM système] → Next → Répertoire → Trouver le répertoire du Java home (version 7) → Finish → Ensuite, dans la liste, cochez Java 7.

Reconstruisez ensuite. Ça devrait marcher. Bonne chance!

55
Paul Samsotha

Un point que je veux ajouter, si vous obtenez l'erreur suivante lors de l'installation de l'archétype montré dans l'image 1

Impossible de résoudre l'archétype org.glassfish.jersey.archetypes: jersey-quickstart-webapp: 2.21 org.Eclipse.core.runtime.CoreException: impossible de résoudre l'artefact org.glassfish.jersey.archetypes: jersey-quickstart-webapp: pom: 2.21

Image 1: enter image description here

Avant de procéder avec la solution spécifiée ci-dessus , essayez de terminer ces étapes dans Eclipse.

2
Deepak Acharya

Après avoir créé avec succès le projet scala-maven comme décrit ci-dessus, vous verrez probablement une erreur "Type non trouvé: tapez JUnitRunner specs.scala". Dans ce cas, ajoutez manuellement l'extrait XML suivant à votre pom.

<dependency>
    <groupId>org.specs2</groupId>
    <artifactId>specs2-junit_${scala.compat.version}</artifactId>
    <version>2.4.16</version>
    <scope>test</scope>
</dependency>

De plus, pour éviter les erreurs lors de l'exécution de mvn test,

[ERROR] scalac error: bad option: '-make:transitive'

Vous devez également supprimer la ligne suivante du pom.xml fichier:

<arg>-make:transitive</arg>
1
Viliam Simko

J'ai fait face au même problème et suis tombé sur cette SO question, ainsi que la réponse donnée par @peeskillet (merci beaucoup). J'utilise:

  • Maven 3.3.3
  • Eclipse Luna Scala IDE 4.0.0.-vfinal-20150305-1644-Typesafe
  • Scala 2.11.6
  • JDK 1.8

Après avoir suivi les étapes exactement comme indiqué ici, j'ai frappé un mur. Lorsque j'ai choisi le bon archétype (net.alchim31.maven), j'ai été accueilli avec cette erreur: Could not resolve artifact net.alchim31.maven:scala-archetype-simple:pom:1.5 Soupçonnant que le maven intégré à Eclipse agissait de manière amusante, j'ai visité [Windows] -> [Maven] -> [Installations] et ajouté une installation locale de maven (tout ce qui est réglé sur M2_HOME dans mon shell). Mais pas de chance!

Exaspéré, j'ai visité ce site: Scala Doc et je suis revenu en ligne de commande comme cette page l'indique. Étonnamment (pour moi, au moins), cela a fonctionné. Un projet maven-Scala a été créé dans le répertoire actuel, que j'ai pu importer dans Eclipse.

Juste pour ne pas être mal compris, je ne dis pas que la réponse de @ peeskillet est fausse. Je voulais juste partager une autre façon de créer un projet maven-scala sur Eclipse, au cas où cela aiderait quelqu'un. Je n'ai pas encore compris pourquoi Eclipse-Scala-IDE n'a pas encore donné ce sentiment "Aha".

1
Nirmalya