Ошибка 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 шт):

Автор решения: AlekseiGaile

У вас приложение которое вы хотите разместить в нескольких модулях. Чтобы исправить проблемы вам надо создать основной 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

→ Ссылка