如何在Eclipse中使用Scala找到正确的Maven原型项目?

时间:2015-03-18 05:46:38

标签: eclipse scala maven m2eclipse maven-archetype

我在Eclipse(Luna)中尝试使用Scala(v2.11.6)创建Maven项目时遇到了问题。说明here说明要在下面安装两个插件。

  • Eclipse中的Maven集成
  • m2eclipse-scala连接器

可以使用m2eclipse-scala update site安装两个插件。所以这就是我第一次尝试时所做的。

  • 下载Eclipse Luna(适用于JavaEE开发人员)
  • 使用m2eclipse-scala更新站点安装上面的“两个”插件。

当Eclipse加载时,我尝试创建一个Maven项目,我想要使用的原型是Group Id = net.alchim31.maven,Artifact Id = scala-archetype-simple,Version = 1.5。但是,当我在过滤器文本字段中输入“scala-arch”时,这个原型永远不会出现。

我看到的唯一项目是Group Id = org.scala-tools.archetypes,Artifact Id = scala-archetype-simple,Version = 1.2。当我选择使用这个原型时,我会在Eclipse中收到一堆错误消息。

    加载ConsoleRunner时出现
  • 错误,Scala签名ConsoleRunner预期版本错误:找到5.0:ConsoleRunner.class中的4.1
  • 加载JUnit4时出现
  • 错误,Scala签名JUnit4预期版本错误:5.0发现:JUnit4.class中的4.1
  • 加载规范时出现
  • 错误,Scala签名规范有错误的版本:5.0发现:4.1。在Specification.class

在我的第二次尝试中,我尝试下载预打包的包(Scala IDE for Eclipse)。同样,当我尝试创建Scala Maven项目时,我没有看到Group Id = net.alchim31.maven的Maven原型(仅适用于Group Id = org.scala-tools.archetypes)。

关于我在这里做错了什么的想法?或者我可以在哪里找到一个香草Scala Maven项目来导入/修改和用于我自己的目的?

4 个答案:

答案 0 :(得分:53)

以下是我如何使用它。似乎所有的原型都不可用,所以基于this answer,我创建了一个远程目录

之前

Image showing the original dialog with missing entry

这样做

转到[Windows]→[首选项]→[Maven]→[Archetypes]→添加远程目录并创建目录,然后应用

Image showing "Remote Archetype Catalog" modal window

  

复制粘贴:

     

返回创建一个新的Maven项目。从下拉列表中选择Remote Catalog。收集所有原型需要一些时间。您可以在IDE的右下角看到进度。完成后,你应该能够看到原型

Image showing "scala-archetype" entry in the dialog

使用groupId和artifactId等创建项目。

右键单击项目,然后从上下文菜单[Run As]& rarr [Maven Build]中单击鼠标右键。在对话框中,在目标中键入clean package。运行。该项目应该构建并运行测试。

首先,我在构建时遇到错误。这是因为我的默认环境是使用Java 8.我对Scala很新,所以我不确定Scala和Java 8是否存在问题(我认为它是pom中的Scala版本(2.10)。 0))。但我所做的就是将IDE中使用的Java版本更改为Java 7。

基本上只需转到[Windows]→[Preferenes]→[Java]→[已安装的JRE]→添加→[系统VM]→下一步→目录→查找Java主目录(版本7)→完成→然后在列表中勾选Java 7。

然后重新建造。它应该工作。祝你好运!

答案 1 :(得分:2)

我想补充一点,如果您在安装图片1中显示的原型时遇到以下错误

  

无法解析Archetype   org.glassfish.jersey.archetypes:新泽西快速入门-web应用:2.21   org.eclipse.core.runtime.CoreException:无法解析工件   org.glassfish.jersey.archetypes:Jersey的快速启动-web应用:POM:2.21

图片1: enter image description here

然后在使用指定的解决方案above进行处理之前,尝试在eclipse中完成these steps

答案 2 :(得分:1)

我遇到了同样的问题,偶然发现了这个问题,以及@peeskillet给出的答案(非常感谢)。我正在使用:

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

完全遵循这里给出的步骤后,我碰到了一堵墙。当我选择正确的原型(net.alchim31.maven)时,我遇到了这个错误: Could not resolve artifact net.alchim31.maven:scala-archetype-simple:pom:1.5 怀疑嵌入日食的maven表现得很有趣,我访问了[Windows] - > [Maven] - > [安装]并添加了maven的本地安装(在我的shell中设置为M2_HOME)。但是,没有运气!

激怒了,我访问了这个网站:Scala Doc并在此页面指示时切换回命令行。令人惊讶的是(至少对我而言),它起作用了。在当前目录中创建了一个maven-Scala项目,我可以将其导入Eclipse。

为了让我不被误解,我并不是说@peeskillet的答案是错误的。只是想分享另一种在Eclipse上创建maven-scala项目的方法,以防它对某人有所帮助。我还没有理解,为什么Eclipse-Scala-IDE还没有给出'Aha'的感觉。

答案 3 :(得分:1)

如上所述成功创建scala-maven项目后,您可能会看到错误"未找到类型:键入JUnitRunner specs.scala" 。在这种情况下,请手动将以下XML代码段添加到您的pom。

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

此外,为了避免在运行mvn test时出错,

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

您还需要从pom.xml文件中删除以下行:

<arg>-make:transitive</arg>