在使用maven的spring boot项目中。找不到课程
我的pom的一部分
<groupId>com.acme.pay</groupId>
<artifactId>ms.billing</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ms.billing</name>
<packaging>jar</packaging>
<properties>
<default.package>com.acme.pay.ms.billing</default.package>
</properties>
项目的结构
com
acme
pay
ms
billing
domain
v2
BillingServiceApplication.java
启动应用程序时,出现此错误
错误:找不到或加载主类com.acme.pay.ms.BillingServiceApplication 引起原因:java.lang.ClassNotFoundException:com.acme.pay.ms.BillingServiceApplication 命令执行失败。
在项目ms上无法执行目标org.codehaus.mojo:exec-maven-plugin:1.5.0:exec(default-cli).billing:命令执行失败。进程退出并出现错误:1(退出值:1)-> [帮助1]
似乎没有正确的路径。
答案 0 :(得分:0)
您的问题可能与您的artifactId
中包含.
字符有关。我从未见过像这样的artifactId格式化,我认为这可能会弄乱路径分辨率。通常,当人们希望使artifactId更具可读性时,请使用-
作为分隔符(按照下面链接的maven指南中的commons-math
)。
http://maven.apache.org/guides/mini/guide-naming-conventions.html
用小写字母和没有奇怪的符号选择所需的名称
答案 1 :(得分:0)
能否请您确认您的应用程序是否为“ Spring Boot ”应用程序?
如果是 ,则在将应用程序作为“ Java应用程序”运行时,只需将主文件选择为“ BillingServiceApplication”即可。您的pom文件没有问题。
如果否 ,那么您能否与所有依赖项共享pom文件?
我认为您需要更改以下依赖项的版本
print(...)
只需检查链接以获取关于stackoverflow的类似问题:
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:java (default-cli)
我希望这会有所帮助!
答案 2 :(得分:0)
您是否使用 @Component , @Services 等为课程添加注释 要么 如果您的班级超出了扫描范围,则可以通过
将其包括在内@ComponentScan(basePackages = "com.acme.pay.ms.billing")
@Configuration
public class SpringComponentScanApp {
或者您可以通过
使用xml<context:component-scan base-package="com.acme.pay.ms.billing" />
答案 3 :(得分:0)
BillingServiceApplication
的包裹应为com.acme.pay.ms.billing.BillingServiceApplication