如何找到正确的 Maven 原型项目以在 Eclipse 中使用 Scala 进行开发?
How do I find the correct Maven archetype project for developing with Scala in Eclipse?
我在尝试使用 Eclipse (Luna) 中的 Scala (v2.11.6) 创建 Maven 项目时遇到问题。说明 here 说要安装下面的两个插件。
- Eclipse 中的 Maven 集成
- m2eclipse-scala 连接器
两个插件都可以使用 m2eclipse-scala update site 安装。所以这是我第一次尝试时所做的。
- 下载 Eclipse Luna(面向 JavaEE 开发人员)
- 使用 m2eclipse-scala 更新站点安装上面的 "both" 插件。
当 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。当我 select 使用这个原型时,我在 Eclipse 中收到一堆错误消息。
- 加载 ConsoleRunner 时出错,Scala 签名 ConsoleRunner 的预期版本错误:5.0 发现:ConsoleRunner.class
中的 4.1
- 加载 JUnit4 时出错,Scala 签名 JUnit4 预期版本错误:5.0 发现:JUnit4.class
中的 4.1
- 加载规范时出错,Scala 签名规范预期版本错误:5.0 发现:Specification.class
中的 4.1
在第二次尝试中,我尝试下载预先打包的包 (Scala IDE for Eclipse)。同样,当我尝试创建 Scala Maven 项目时,我没有看到 Group Id=net.alchim31.maven 的 Maven 原型(仅适用于 Group Id=org.scala-tools.archetypes)。
关于我在这里做错了什么有什么想法吗?或者我在哪里可以找到一个香草 Scala Maven 项目 import/modify 并用于我自己的目的?
这是我如何让它工作的。好像所有的原型都不可用,所以基于this answer,我创建了一个远程目录
之前
所以这样做
转到[Windows]→[首选项]→[Maven]→[原型]→添加远程目录并创建目录,然后申请
For copy-pasting:
- Catalog File: http://repo1.maven.org/maven2/archetype-catalog.xml
- Description: Remote Archetypes
返回创建一个新的 Maven 项目。 Select 下拉列表中的 Remote Catalog
。收集所有原型需要一些时间。您可以在 IDE 的右下角看到进度。完成后,您应该能够看到原型
之后
使用 groupId 和 artifactId 等创建您的项目。
右键单击项目,然后从上下文菜单 [运行 As] &rarr [Maven Build]。在对话框中,在目标中输入 clean package
。 运行。该项目应该构建并 运行 测试。
对我来说,一开始我在构建时遇到了错误。这是因为我的默认环境使用的是 Java 8。我对 Scala 很陌生,所以我不确定 Scala 和 Java 8 是否有问题(我认为是pom (2.10.0) 中的 Scala 版本)。但是我为了让它工作所做的只是将 IDE 中使用的 Java 版本更改为 Java 7.
基本上就是去 [Windows] → [Preferenes] → [Java] → [Installed JREs] → Add → [System VM] → 下一步 → 目录 → 找到 Java 主页(版本 7)的目录 → 完成 → 然后在列表中勾选 Java7.
然后重新构建。它应该工作。祝你好运!
我遇到了同样的问题并偶然发现了这个 SO 问题以及@peeskillet 给出的答案(非常感谢)。我正在使用:
- 行家 3.3.3
- Eclipse Luna Scala IDE 4.0.0.-vfinal-20150305-1644-Typesafe
- Scala 2.11.6
- JDK1.8
完全按照此处给出的步骤进行操作后,我碰壁了。当我选择了正确的原型(net.alchim31.maven)时,我遇到了这个错误:
Could not resolve artifact net.alchim31.maven:scala-archetype-simple:pom:1.5
怀疑 eclipse 中嵌入的 maven 表现得很有趣,我访问了 [Windows] -> [Maven] -> [Installations] 并添加了 maven 的本地安装(在我的 shell).但是,运气不好!
很生气,我访问了这个站点:Scala Doc 并按照此页面的指示切换回命令行。令人惊讶的是(至少对我而言),它奏效了。在当前目录中创建了一个maven-Scala 项目,我可以将其导入到Eclipse 中。
为了不被误解,我并不是说@peeskillet 的回答是错误的。只是想分享另一种在 Eclipse 上创建 maven-scala 项目的方法,以防它对某人有所帮助。我还没有明白,为什么 Eclipse-Scala-IDE 还没有给人那种 'Aha' 的感觉。
我想补充一点,如果您在安装图 1 中显示的原型时出现以下错误
Can't resolve Archetype
org.glassfish.jersey.archetypes:jersey-quickstart-webapp:2.21
org.eclipse.core.runtime.CoreException: Could not resolve artifact
org.glassfish.jersey.archetypes:jersey-quickstart-webapp:pom:2.21
图 1:
然后在 eclipse 中指定 , try to complete 的解决方案之前。
在您如上所述成功创建 scala-maven 项目后,您可能会看到一个错误 "Type not found: type 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>
我在尝试使用 Eclipse (Luna) 中的 Scala (v2.11.6) 创建 Maven 项目时遇到问题。说明 here 说要安装下面的两个插件。
- Eclipse 中的 Maven 集成
- m2eclipse-scala 连接器
两个插件都可以使用 m2eclipse-scala update site 安装。所以这是我第一次尝试时所做的。
- 下载 Eclipse Luna(面向 JavaEE 开发人员)
- 使用 m2eclipse-scala 更新站点安装上面的 "both" 插件。
当 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。当我 select 使用这个原型时,我在 Eclipse 中收到一堆错误消息。
- 加载 ConsoleRunner 时出错,Scala 签名 ConsoleRunner 的预期版本错误:5.0 发现:ConsoleRunner.class 中的 4.1
- 加载 JUnit4 时出错,Scala 签名 JUnit4 预期版本错误:5.0 发现:JUnit4.class 中的 4.1
- 加载规范时出错,Scala 签名规范预期版本错误:5.0 发现:Specification.class 中的 4.1
在第二次尝试中,我尝试下载预先打包的包 (Scala IDE for Eclipse)。同样,当我尝试创建 Scala Maven 项目时,我没有看到 Group Id=net.alchim31.maven 的 Maven 原型(仅适用于 Group Id=org.scala-tools.archetypes)。
关于我在这里做错了什么有什么想法吗?或者我在哪里可以找到一个香草 Scala Maven 项目 import/modify 并用于我自己的目的?
这是我如何让它工作的。好像所有的原型都不可用,所以基于this answer,我创建了一个远程目录
之前
所以这样做
转到[Windows]→[首选项]→[Maven]→[原型]→添加远程目录并创建目录,然后申请
For copy-pasting:
- Catalog File: http://repo1.maven.org/maven2/archetype-catalog.xml
- Description: Remote Archetypes
返回创建一个新的 Maven 项目。 Select 下拉列表中的 Remote Catalog
。收集所有原型需要一些时间。您可以在 IDE 的右下角看到进度。完成后,您应该能够看到原型
之后
使用 groupId 和 artifactId 等创建您的项目。
右键单击项目,然后从上下文菜单 [运行 As] &rarr [Maven Build]。在对话框中,在目标中输入 clean package
。 运行。该项目应该构建并 运行 测试。
对我来说,一开始我在构建时遇到了错误。这是因为我的默认环境使用的是 Java 8。我对 Scala 很陌生,所以我不确定 Scala 和 Java 8 是否有问题(我认为是pom (2.10.0) 中的 Scala 版本)。但是我为了让它工作所做的只是将 IDE 中使用的 Java 版本更改为 Java 7.
基本上就是去 [Windows] → [Preferenes] → [Java] → [Installed JREs] → Add → [System VM] → 下一步 → 目录 → 找到 Java 主页(版本 7)的目录 → 完成 → 然后在列表中勾选 Java7.
然后重新构建。它应该工作。祝你好运!
我遇到了同样的问题并偶然发现了这个 SO 问题以及@peeskillet 给出的答案(非常感谢)。我正在使用:
- 行家 3.3.3
- Eclipse Luna Scala IDE 4.0.0.-vfinal-20150305-1644-Typesafe
- Scala 2.11.6
- JDK1.8
完全按照此处给出的步骤进行操作后,我碰壁了。当我选择了正确的原型(net.alchim31.maven)时,我遇到了这个错误:
Could not resolve artifact net.alchim31.maven:scala-archetype-simple:pom:1.5
怀疑 eclipse 中嵌入的 maven 表现得很有趣,我访问了 [Windows] -> [Maven] -> [Installations] 并添加了 maven 的本地安装(在我的 shell).但是,运气不好!
很生气,我访问了这个站点:Scala Doc 并按照此页面的指示切换回命令行。令人惊讶的是(至少对我而言),它奏效了。在当前目录中创建了一个maven-Scala 项目,我可以将其导入到Eclipse 中。
为了不被误解,我并不是说@peeskillet 的回答是错误的。只是想分享另一种在 Eclipse 上创建 maven-scala 项目的方法,以防它对某人有所帮助。我还没有明白,为什么 Eclipse-Scala-IDE 还没有给人那种 'Aha' 的感觉。
我想补充一点,如果您在安装图 1 中显示的原型时出现以下错误
Can't resolve Archetype org.glassfish.jersey.archetypes:jersey-quickstart-webapp:2.21 org.eclipse.core.runtime.CoreException: Could not resolve artifact org.glassfish.jersey.archetypes:jersey-quickstart-webapp:pom:2.21
图 1:
然后在 eclipse 中指定
在您如上所述成功创建 scala-maven 项目后,您可能会看到一个错误 "Type not found: type 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>