У меня возникла ошибка при запуске mvn spring-boot:run, как это исправить?

При запуске mvn spring-boot:run выдает ошибку:

Не удалось выполнить цель org.springframework.boot:spring-boot-maven-plugin:3.1.0:run (default-cli) на бэкенде проекта Restaurant: Процесс завершен с кодом выхода: 1

Вот код моего pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         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>com.restaurant</groupId>
    <artifactId>restaurant-backend</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <java.version>23.0.1</java.version>
    </properties>

    <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>6.1.2</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>6.1.2</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.33</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>3.4.2</version>
    </dependency>

    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
      <version>3.1.0</version>
    </dependency>

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.30</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>javax.persistence</groupId>
      <artifactId>javax.persistence-api</artifactId>
      <version>2.2</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <version>3.4.2</version>
      <scope>test</scope>
    </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Spring Boot Maven Plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>3.4.2</version>
            </plugin>
        </plugins>
    </build>
</project>

Ожидал полного запуска всего проекта, но выдало ошибку, попробовал поискать на других сайтах и ​​ничего не нашел, как это исправить.

введите сюда описание изображения

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Roman C

В pom.xml Вы указываете версии библиотек явно, и явно натолкнулись на несовместимость версий. Если вы не можете конфигурировать проект самостоятельно, то надо пользоваться хотя бы источниками, которые позволяют вам конфигурировать проект изначально правильно.

Вот примерный файл, который мне сгенерил Spring Initializer:

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>23</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

Заметим:

Если в зависимостях не указана версия явно, то используется последняя версия по умолчанию.

А теперь каждую библиотеку/артефакт нужно добавить отдельно, используя совместимую версию.

Сразу скажу, что такие зависимости как

<dependency>
      <groupId>javax.persistence</groupId>
      <artifactId>javax.persistence-api</artifactId>
      <version>2.2</version>
    </dependency>

нужно убрать, поскольку она не совместимая с Jakarta EE. Вместо этого можно использовать

<dependency>
    <groupId>jakarta.persistence-api</groupId>
    <artifactId>jakarta.persistence</artifactId>
    <version>3.2.0</version>
</dependency>
→ Ссылка
Автор решения: Nikita Konovalov NikiTaco

Всем спасибо за ответы, ошибка действительно оказалась связана с несовместимостью некоторых зависимостей, я просто перешле на более старую версию JDK, а конкретнее на JDK17(но полагаю, что с 21 тоже будет работать) и все заработало, я также немного изменил параметры в propeties для удобства.

→ Ссылка