在Eclipse中设置Scala Lift项目

时间:2011-11-13 16:05:21

标签: eclipse scala maven classpath lift

我正在尝试在Eclipse中设置我的第一个scala lift项目,它是Not Simple(TM)。

我所做的是使用以下

通过Maven设置项目
mvn archetype:generate -U \
-DarchetypeGroupId=net.liftweb \
-DarchetypeArtifactId=lift-archetype-basic_2.9.1 \
-DarchetypeVersion=2.4-SNAPSHOT \
-DarchetypeRepository=http://scala-tools.org/repo-releases \
-DgroupId=demo.helloworld -DartifactId=helloworld -Dversion=1.0-SNAPSHOT

然后我使用mvn eclipse:eclipse创建了一个eclipse项目(因为找出所有依赖项并将它们全部添加到构建路径中是很糟糕的)

然后该项目与已安装的Scala版本冲突。所以我从buildpath中删除了对scalalang的三个现有引用,并将我自己的scala添加到buildpath中。我正在使用scala 2.9.0。

现在可以构建项目,但是当我尝试运行RunWebApp时,会抛出异常:

Exception in thread "main" java.lang.NoClassDefFoundError: RunWebApp
Caused by: java.lang.ClassNotFoundException: RunWebApp
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: RunWebApp. Program will exit.

我知道Scala-Lift project in Eclipse Scala IDE errors建议在http://groups.google.com/group/scala-ide-user上提出问题的答案,但我希望有人能够以某种方式指出我的答案,其他有同样问题的人可能会找到答案回答

4 个答案:

答案 0 :(得分:5)

我建议你用sbt升降机。您可以在此处找到模板项目https://github.com/viktortnk/lift-quickstart,其中包含sbt 0.11.2和提升2.4
它还包括sbt eclipse插件,可以在scala-ide中使用。
我希望它会对你有所帮助。

答案 1 :(得分:3)

我发现如果你使用sbt 0.11和sbteclipse插件,它会为你带来所有的魔力。

https://github.com/harrah/xsbt

https://github.com/typesafehub/sbteclipse

答案 2 :(得分:2)

我知道这个问题很老,但搜索结果却很高,所以我想添加一个更新的答案。

最新的Scala IDE(2.1 M3)和maven集成一样非常好。我有一个开源演示项目:

https://github.com/awkay/lift_squeryl_demo

给出了使用以下功能设置eclipse的说明:

  • 简单地导入基于此pom的电梯项目(使用Scala 2.9 / Lift 2.5)作为“现有Maven项目”。完成。什么都没有运行。没有要生成的sbt文件。没有eclipse项目文件可以生成...它只是有效。
  • 强大的scala支持,包括暗示的重点,强大的源代码级调试
  • Web工具服务器支持(在eclipse的服务器选项卡中运行/调试您的webapp)
  • JRebel支持即时重新加载(有免费许可证!)
  • 对命令行构建和打包的典型maven支持
  • 在必须处理应用程序之间的集成的情况下,能够在同一个tomcat实例上使用任意数量的Java Web应用程序。

结果是一种根本不需要命令行交互的体验,并且包括超快速编辑 - 保存 - 重新加载Web开发。它确实为您提供了动态的语言开发体验。

答案 3 :(得分:1)

我不知道这是否是您遇到的问题,但有时您需要确保Scala库在项目类路径中的 JRE库之前出现(或运行以前的配置)执行它。)

http://www.assembla.com/spaces/scala-ide/tickets/1000119-classnotfoundexception-trying-to-run-scala-app-in-helios