为什么我在 maven 中添加的依赖项出现模块丢失错误,我需要解决它?

Error:(10, 18) java: package com.google.gson is not visible

  (package com.google.gson is declared in module gson, but module AnimalShelter fails to read it)


在将gson依赖项添加到我的 maven 后,我遇到了这个错误,我完全不知道如何修复它,我用谷歌搜索了一下,有人建议我在我的 module-info.java中添加一个 required 。这样做了,它修复了 IDE 错误,但是当我尝试运行时


java.lang.module.FindException: Module gson not found, required by AnimalShelter


老实说,我根本不了解模块的工作方式,所以我可能会忽略一些简单的事情,但是在我的 maven pom.xml 中添加依赖项后它不应该工作吗?pom.xml 片段如下所示


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>groupId</groupId>

    <artifactId>AnimalShelterYori</artifactId>

    <version>1.0-SNAPSHOT</version>


    <build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-dependency-plugin</artifactId>

                <version>3.1.1</version>

                <executions>

                    <execution>

                        <id>copy-dependencies</id>

                        <phase>package</phase>

                        <goals>

                            <goal>copy-dependencies</goal>

                        </goals>

                        <configuration>

                            <outputDirectory>${project.build.directory}/../mods</outputDirectory>

                            <overWriteReleases>false</overWriteReleases>

                            <overWriteSnapshots>false</overWriteSnapshots>

                            <overWriteIfNewer>true</overWriteIfNewer>

                        </configuration>

                    </execution>

                </executions>

            </plugin>



Cats萌萌
浏览 254回答 2
2回答

UYOU

您可以尝试以下选项:提供了 Gson 依赖的范围,因此请确保在运行时这将由任何容器提供更新 maven 项目并进行全新安装尝试使用最新版本的 Gson<dependency>&nbsp; &nbsp; <groupId>com.google.code.gson</groupId>&nbsp; &nbsp; <artifactId>gson</artifactId>&nbsp; &nbsp; <version>2.8.5</version>&nbsp; &nbsp; <scope>provided</scope></dependency>

杨魅力

使用 Maven提供的范围意味着依赖项不需要与您的应用程序一起打包(即,您正在部署到将提供依赖项的应用程序服务器,如 Tomcat)。尝试一起删除范围或更改为默认值compile。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java