【发布时间】:2016-01-10 04:41:31
【问题描述】:
我正在尝试在 Scala 中创建一个简单的 hello world web 应用程序,它使用 maven 作为构建工具来引导 spring-boot 作为其框架。
我环顾了一下(Gradle 有一些教程,而 maven 的信息则少得多,这是有原因的吗?)
我设法将所有东西都连接起来,但现在我在尝试运行应用程序时遇到了这个错误:
Error: Could not find or load main class SampleWebApplication
这里是源代码,
parent pom from github 删除一些关于 git 和部署的代码,保持结构完整
然后是我的网络应用程序 pom:
<parent> <groupId>X.Y.Z</groupId> <artifactId>spring-boot-scala-app-parent</artifactId> <version>1.0.5-SNAPSHOT</version> </parent> <artifactId>webservice</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.1.3.RELEASE</version> <configuration> <mainClass>SampleWebApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins>
SampleWebApplication:
import org.springframework.boot.SpringApplication class SampleWebApplication extends App { SpringApplication.run(classOf[SampleConfig]); }
示例配置:
@Configuration @EnableAutoConfiguration @ComponentScan class SampleConfig { }
【问题讨论】:
-
您的
SampleWebApplication没有在任何包中?你确定你有它在根? -
是的,我在项目的根目录中。 src/main/scala
-
把你的类
SampleWebApplication放在一个包里,而不是放在默认(未命名的)包里,然后在pom.xml中指定全限定名。例如com.myproject.SampleWebApplication。 -
您的项目中是否还包括 Scala 库?如果您尝试在没有 Scala 库的情况下将其作为 Java 应用程序运行,JVM 将无法找到标准 Scala 类,例如
App,也无法加载您的类SampleWebApplication。跨度> -
Scala 库已包含在内,我尝试将 SampleWebApplication 放入一个它不起作用的包中,结果相同。