В пакете org.springframework.boot не существует ошибки для многомодульного проекта - PullRequest
0 голосов
/ 26 июня 2019

Это pom.xml дочернего проекта, aragorn-web является родительским:

<?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>


    <parent>
        <groupId>com.caner</groupId>
        <artifactId>aragorn-web</artifactId>
        <version>1.0</version>
    </parent>

    <artifactId>aragorn-internal</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>


    <properties>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
            <version>3.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
        </dependency>
        <!-- Spring Security -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
            <version>3.0.11.RELEASE</version>
        </dependency>
    </dependencies>


</project>

Это Java-класс для запуска

package com.caner;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

    @SpringBootApplication
    public class AragornInternalApplication{

        public static void main(String[] args) {
            SpringApplication.run(AragornInternalApplication.class, args);
        }

    }

Когда я запускаю этот дочерний модуль,выдает ошибку:

Connected to the target VM, address: '127.0.0.1:58367', transport: 'socket'
Error: Could not find or load main class com.caner.AragornInternalApplication
Disconnected from the target VM, address: '127.0.0.1:58367', transport: 'socket'

Process finished with exit code 1

Когда я перехожу на вкладку проблем на intellij, я вижу много ошибок почти для всех классов.Но для AragornInternalApplication.java:

Error:(3, 32) java: package org.springframework.boot does not exist
Error:(4, 46) java: package org.springframework.boot.autoconfigure does not exist
Error:(6, 2) java: cannot find symbol
  symbol: class SpringBootApplication
Error:(10, 9) java: cannot find symbol
  symbol:   variable SpringApplication
  location: class com.caner.AragornInternalApplication

Но у меня есть подпружиненная загрузка

            <artifactId>spring-boot-starter-web</artifactId>

Основной pom xml:

<?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">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <!--2.1.4.RELEASE-->
        <!--2.1.3.RELEASE-->
        <!--2.1.2.RELEASE-->
        <relativePath/>
    </parent>

    <groupId>com.caner</groupId>
    <artifactId>aragorn-web</artifactId>
    <version>1.0</version>
    <name>aragorn-web</name>
    <packaging>pom</packaging>

    <modules>
        <module>aragorn-backend</module>
        <module>aragorn-external</module>
        <module>aragorn-internal</module>
    </modules>

</project>

Я скопировал pom от другого потомкаpom, но это не работает.

Когда я иду в раздел модулей в Intellij, я вижу все параметры, такие как путь, ресурсы с этим дочерним элементом одинаковые.

Это другой дочерний pom

<?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">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.caner</groupId>
        <artifactId>aragorn-web</artifactId>
        <version>1.0</version>
    </parent>

    <artifactId>aragorn-external</artifactId>
    <version>1.0</version>
    <name>aragorn-external</name>
    <!--    <description>caner E-book (Project:aragorn)</description>-->
    <packaging>war</packaging>

    <properties>
        <java.version>1.8</java.version>
        <hibernate-core.version>5.3.7.Final</hibernate-core.version>
        <hibernate-commons-annotations.version>5.0.4.Final</hibernate-commons-annotations.version>
        <commons-codec.version>1.9</commons-codec.version>
        <mysql-connector-java.version>5.1.46</mysql-connector-java.version>
        <joda-time.version>2.9.9</joda-time.version>
    </properties>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
        <dependency>
            <groupId>com.caner</groupId>
            <artifactId>aragorn-backend</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>nz.net.ultraq.thymeleaf</groupId>
            <artifactId>thymeleaf-layout-dialect</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

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

    <repositories>
        <repository>
            <id>central</id>
            <url>http://repo1.maven.org/maven2/</url>
        </repository>
        <repository>
            <id>hibernate-validator</id>
            <url>https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator</url>
        </repository>
        <repository>
            <id>hibernate-core</id>
            <url>https://mvnrepository.com/artifact/org.hibernate/hibernate-core</url>
        </repository>
        <repository>
            <id>hibernate-commons-annotations</id>
            <url>https://mvnrepository.com/artifact/org.hibernate.common/hibernate-commons-annotations</url>
        </repository>
        <repository>
            <id>reflections</id>
            <url>https://mvnrepository.com/artifact/org.reflections/reflections</url>
        </repository>
        <!--<repository>-->
        <!--<id>joda</id>-->
        <!--<url>https://mvnrepository.com/artifact/joda-time/joda-time</url>-->
        <!--</repository>-->
        <repository>
            <id>apache commons-codec</id>
            <url>https://mvnrepository.com/artifact/commons-codec/commons-codec</url>
        </repository>
    </repositories>

    <build>
        <finalName>ROOT</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <junitArtifactName>junit:junit</junitArtifactName>
                    <argLine>
                        <!--                        -Dspring.profiles.active=dev-->
                        -Xms256m -Xmx512m -ea -Dfile.encoding=UTF-8
                    </argLine>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Я перезапустил, сделал недействительным кеш, удалил все зависимости, добавил другие зависимости, но не смог заставить его работать.

Я также пытался преобразовать в jar, но все тот же

   <packaging>jar</packaging>

Пожалуйста, помогите

1 Ответ

0 голосов
/ 26 июня 2019

Если ваш родитель не pom spring-boot-starter-parent, вы должны добавить управление зависимостями в ваш pom родителя:

<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.6.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Подробнее в официальной документации: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-maven-without-a-parent

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...