Ошибка Error: Could not find or load main class Многомодульное приложение Spring Boot
У меня есть приложение на Java, использую Maven и Spring Boot. Есть основной модуль и дополнительный, отвечающий за БД:
При добавлении модуля и запуска приложения вызывается вот так ошибка: Error: Could not find or load main class ru.deveducatetest.DeveducatetestApplication Caused by: java.lang.ClassNotFoundException: ru.deveducatetest.DeveducatetestApplication
При этом в основном модуле перестаёт создаваться папка target и out, только в модуле bd Код класса DeveducatetestApplication:
package ru.deveducatetest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DeveducatetestApplication {
public static void main(String[] args) {
SpringApplication.run(DeveducatetestApplication.class, args);
}
}
Код класса Main в модуле deveducatetest-db:
package ru.deveducatetest;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Ответы (1 шт):
У вас приложение которое вы хотите разместить в нескольких модулях. Чтобы исправить проблемы вам надо создать основной pom в deveducatetest папке с таким содержанием, естественно заменив "..." на то что нужно вам -
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>...</groupId>
<artifactId>deveducatetest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>deveducatetest</name>
<description>deveducatetest</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>...</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<start-class>...</start-class>
<java.version>..</java.version>
</properties>
<modules>
<module>deveducatetest-db</module>
<module>deveducatemain</module>
</modules>
<dependencies>
...
</dependencies>
</project>
Поместить src в какую нибудь папку, в моем примере - deveducatemain и создать pom в папках deveducatemain и deveducatetest-db с таким содержанием -
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>...</artifactId>
<groupId>deveducatetest</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>deveducatetest-db</artifactId>
<name>deveducatetest-db</name>
</project>
и
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>...</artifactId>
<groupId>deveducatetest</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>deveducatemain</artifactId>
<name>deveducatemain</name>
</project>
Полагаю что один из модулей зависит от другого, поэтому надо прописать где то эту зависимость. Если нужен образец, мой проект с многомодульной структурой pom- https://github.com/GaileAlex/cv
