为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2022-06-30 11:46:00
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>
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

您可以尝试以下选项:


提供了 Gson 依赖的范围,因此请确保在运行时这将由任何容器提供

更新 maven 项目并进行全新安装

尝试使用最新版本的 Gson


<dependency>

    <groupId>com.google.code.gson</groupId>

    <artifactId>gson</artifactId>

    <version>2.8.5</version>

    <scope>provided</scope>

</dependency>


查看完整回答
反对 回复 2022-06-30
?
杨魅力

TA贡献1811条经验 获得超6个赞

使用 Maven提供的范围意味着依赖项不需要与您的应用程序一起打包(即,您正在部署到将提供依赖项的应用程序服务器,如 Tomcat)。尝试一起删除范围或更改为默认值compile



查看完整回答
反对 回复 2022-06-30
  • 2 回答
  • 0 关注
  • 248 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信