maven无法自动导入依赖jar包解决方式

 更新时间:2024年08月08日 09:18:13   作者:Holy_Java  
有时候Maven无法自动导入包是因为该包未下载到本地仓库中,本文就来介绍一下解决方法,具有一定的参考价值,感兴趣的可以了解一下

第一章、maven无法导入依赖

1.1)问题:maven无法导入依赖

maven点击Reimport导入按钮,jar包依然导入不进来。

在这里插入图片描述

1.2)解决方案

1.2.1)确保本地仓库路径配置正确

要确保本地仓库路径配置正确:

打开Maven安装路径下/config/settings.xml文件。
在文件中找到<localRepository>标签。
确保标签中的值是你想要设置的本地仓库路径,例如:
<localRepository>D:/tool/repository</localRepository>

如图:

在这里插入图片描述

1.2.2)确定pom文件中的</dependency>依赖导入配置没有写错

pom文件的格式通常如下:注意版本,ID不要写错

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

1.2.3)确保idea的maven配置不要写错

打开IDEA—》File—》setting—》build—》build tools —》maven查看右侧配置,是否为自己的maven安装路径

在这里插入图片描述

第二章、maven中只有Lifecycle,Dependencies和Plugins消失

2.1)问题:maven中只有Lifecycle,Dependencies和Plugins消失

在idea中导入一个新的maven项目出现如图情况,Dependencies和Plugins消失。
maven导入时,idea内无法运行并提示“Unable to import maven project: See logs for details
其中maven版本3.8.9
ide版本2018.3

在这里插入图片描述

2.2)解决方案:

2.2.1)尝试clean然后install

先查看IDE的maven配置是否有问题

尝试清理 IDE 的缓存(clean)并重新构建项目(install),有时 IDE 的缓存可能导致依赖显示错误

2.2.2)确认maven版本是否匹配

②查看idea的运行日志
help–》show log in explor
③发现日志提示3.8.9的maven版本太高,需要降低到3.3版本,降到3.3.9后就好了

第三章、无法安装独有的本地jar包

3.1)问题:无法安装独有的本地jar包

①内网环境连接不上外网,无法从远程仓库下载jar包,只能自己安装。
②一些独特项目的独有jar包,我们也无法从远程仓库下载,只能自己安装。**

3.2)解决方案

3.2.1)确保本地仓库有完整jar包,使用命令安装

①使用命令
本地仓库路径配置正确,本地仓库里也有jar包,但是依然导入不了jar包,可以运行下面的命令,将JAR包安装到本地仓库。
打开命令行工具(如CMD、Shell或其他终端)输入:

mvn install:install-file -Dfile=/localpath/t/xxxexample.jar -DgroupId=yourGroupId 
-DartifactId=yourArtifactId -Dversion=yourVersion -Dpackaging=jar

②命令解释

/localpath/t/xxxexample.jar是包含jar包名称的JAR文件路径。

yourGroupId、yourArtifactId和yourVersion 是pom文件中jar包的Maven坐标,根据具体需求来替换。

-Dpackaging=jar 是固定写法不用替换,指定包的类型为JAR。

3.2.2)通过resource导入本地jar包

自动导入失败,使用安装命令还是安装不了,那就试试手动引入jar包吧。

①pom文件中添加以下插件和插件配置

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   <configuration>
       <includeSystemScope>true</includeSystemScope>
   </configuration>
</plugin> 

②在resource文件夹下创建jar文件路径,存放我们自己的jar包

在这里插入图片描述

③在pom文件中添加jar包配置和系统路径配置

<dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
            <scope>system</scope>
            <systemPath>
${project.basedir}/src/main/resources/jar/velocity-engine-core-2.0.jar
            </systemPath>
</dependency>

3.2.3)非maven项目,直接把jar包放在lib目录下

对于非Maven项目,你可以直接将所需的jar包放在项目的lib目录下。然后,你可以通过IDE将这些jar包添加到项目的构建路径中项目就可以使用这些jar包中的类和功能。

①在项目的目录新建lib文件夹

在这里插入图片描述

②把jar包直接复制进lib目录后—》选中lib目录再右键选择Add as Library

在这里插入图片描述

依赖就导入了。

3.2.4)maven项目,jar包放在lib下导致的问题及解决

①pom文件中添加以下插件和插件配置

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   <configuration>
       <includeSystemScope>true</includeSystemScope>
   </configuration>
</plugin> 

②将所需的jar包放在项目的lib目录下,通过修改pom.xml文件来配置Maven以使用这些本地jar包作为依赖项。

<dependencies>
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>example</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/example.jar</systemPath>
    </dependency>
</dependencies>

这种方式导致的问题1、打包时缺少依赖项: Maven可能无法正确地将本地jar包打包到最终文件中,因为它不会自动将本地jar包打包到构建产物中。

2、不可移植: 如果项目需要在其他环境中构建,其他环境可能无法找到本地jar包的路径,导致构建失败。

3、难以管理: 使用本地jar包作为依赖项可能会导致依赖管理变得困难,特别是在团队合作或持续集成环境中。

解决:打包时排除第三方依赖,并把第三方依赖输出到指定目录使用maven的插件maven-dependency-pluginmaven-dependency-plugin的copy-dependencies目标会将所有依赖(包括Maven中的依赖和lib目录下的依赖)复制到target/lib目录下。

<build>
        <plugins>
            <plugin>
                <!--打包时去除第三方依赖-->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <layout>ZIP</layout>
                    <includes>
                        <include>
                            <groupId>non-exests</groupId>
                            <artifactId>non-exests</artifactId>
                        </include>
                    </includes>
                </configuration>
            </plugin>
            <!--拷贝第三方依赖到指定目录-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <!--targer/lib是依赖jar包的输出目录,根据喜好配置-->
                            <outputDirectory>target/lib</outputDirectory>
                            <excludeTransitive>false</excludeTransitive>
                            <stripVersion>false</stripVersion>
                            <includeScope>runtime</includeScope>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

当依赖被复制到target/lib目录后,就可以通过在运行时使用命令来引用这些依赖。

-Djava.ext.dirs参数: 通过在运行时使用-Djava.ext.dirs参数来指定target/lib目录依赖目录。
java -Djava.ext.dirs=target/lib -jar yourapp.jar
//或者这样
java -Dloader.path=./lib -jar xxx.jar

第四章、pom文件不报红,maven依赖爆红。

4.1)检查确认pom文件没错,但是maven依赖爆红。

在这里插入图片描述

4.2)解决方案:

把所有依赖注释掉点击刷新Reimport
放开注释,点击刷新Reimport,再次reload maven依赖

到此这篇关于maven无法自动导入依赖jar包解决方式的文章就介绍到这了,更多相关maven无法自动导入依赖jar包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解SpringBoot如何优雅的处理免登录接口

    详解SpringBoot如何优雅的处理免登录接口

    在项目开发过程中,会有很多API接口不需要登录就能直接访问,比如公开数据查询之类的,常规处理方法基本是 使用拦截器或过滤器,拦截需要认证的请求路径,本文介绍一个更优雅的方法自定义注解的方式,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • spring boot使用自定义注解做AOP的案例代码

    spring boot使用自定义注解做AOP的案例代码

    这篇文章主要介绍了spring boot使用自定义注解做AOP的案例代码,代码简单易懂,通过创建一个自定注解,接收一个传值type,感兴趣的朋友一起看看吧
    2024-06-06
  • Java设计模式之工厂模式分析【简单工厂、工厂方法、抽象工厂】

    Java设计模式之工厂模式分析【简单工厂、工厂方法、抽象工厂】

    这篇文章主要介绍了Java设计模式之工厂模式,结合实例形式分析了简单工厂、工厂方法、抽象工厂等相关功能、实现与使用方法,需要的朋友可以参考下
    2018-04-04
  • Spring中的代理ProxyFactory解析

    Spring中的代理ProxyFactory解析

    这篇文章主要介绍了Spring中的ProxyFactory解析,在Java中,代理模式的实现通常依靠Proxy类和InvocationHandler接口,本文将介绍如何使用ProxyFactory来创建代理模式,需要的朋友可以参考下
    2023-12-12
  • SpringMVC上传图片代码实例

    SpringMVC上传图片代码实例

    这篇文章主要介绍了SpringMVC上传图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Java虚拟机GC日志分析

    Java虚拟机GC日志分析

    这篇文章主要介绍了Java虚拟机GC日志分析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 使用MyBatis快速生成代码的几种方法

    使用MyBatis快速生成代码的几种方法

    本文主要介绍了如何使用MyBatis快速生成代码的几种方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-12-12
  • Java如何使用正则表达式从字符串中提取数字

    Java如何使用正则表达式从字符串中提取数字

    这篇文章主要介绍了Java如何使用正则表达式从字符串中提取数字问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • SpringCache缓存自定义配置的实现

    SpringCache缓存自定义配置的实现

    本文主要介绍了SpringCache缓存自定义配置的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 使用@TransactionalEventListener监听事务教程

    使用@TransactionalEventListener监听事务教程

    这篇文章主要介绍了使用@TransactionalEventListener监听事务教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09

最新评论