解決Maven工程(springBoot)子模塊中pom.xml開頭出現Unkown error的問題

解決Maven工程(springBoot)子模塊中pom.xml開頭出現Unkown error的問題

問題背景

最近在學習Spring Boot過程中通過eclipse創建了一個Maven工程,然後基於此Maven工程創建了一個子模塊項目,及Maven Module項目,但是在Maven Module項目的pom.xml開頭出現了Unkown error的紅色小叉,如下圖:
在這裏插入圖片描述
在這裏插入圖片描述
其中,父級Maven工程的pom.xml的內容如下:

<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.wongoing</groupId>
	<artifactId>base-microserver</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>

	<name>base-microserver</name>
	<url>http://maven.apache.org</url>
	
	<modules>
		<module>base-eureka</module>
	</modules>

	<!-- 使用屬性設置編譯工具的版本和項目的編碼方式 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
        <maven-compiler.version>3.1</maven-compiler.version>
        <maven-surefire.version>2.12.4</maven-surefire.version>
    </properties>
    <!-- 使用父級配置,設定Spring Boot和Spring Cloud的版本 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-parent</artifactId>
        <version>2.1.5.RELEASE</version>
    </parent>

	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 配置starter -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
	
	<!-- 使用統一的插件配置,如果模塊中沒有相關的構建配置,將默認使用這個配置 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire.version}</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

子級Maven Module的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>
	
	<parent>
		<groupId>com.wongoing</groupId>
		<artifactId>base-microserver</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	
	<artifactId>base-eureka</artifactId>
	
	<dependencies>
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
	</dependencies>
</project>

問題分析

通過從網上查找相關問題發現,大部分這種Unkown Error問題主要是由於當前Maven的版本對依賴庫的版本不支持導致的。還發現有些朋友直接在創建基於Maven的Spring Boot項目是就出現了這個問題,解決辦法是把Spring Boot的版本降低一些。我現在的問題是在主Maven工程中的pom.xml中配置的spring boot依賴,但是在子模塊的pom.xml中報錯。雖然對這個解決思路持懷疑態度,但是也不妨一試。

問題解決

1、修改主Maven工程中pom.xml的spring boot版本2.1.5.RELEASE爲2.1.4.RELEASE,並保存,等待工程編譯結束。
2、鼠標右鍵Maven子模塊項目,在彈出菜單中選擇Maven->Update Project,等待更新結束。
經過這2部操作發現子模塊的pom.xml中的Unkown error小紅叉消失了,且子工程的小紅叉也消失了,一切都正常了,如下圖:
在這裏插入圖片描述
至此,這個問題完美解決,希望對使用eclipse開發spring boot的朋友有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章