Maven中jar包导入项目的两种方法(抄写记录)

原文链接:https://blog.csdn.net/qq_42495847/article/details/119388579

1.jar包打入本地仓库-mvn方式
适用场景:

公司的私包或者没有上传到公共仓库的jar包,于是Maven拿不到这个包,导致pom标红

解决思路:

1.首先需要拿到这个jar包,保存到自己的电脑上,记录存放的文件路径

2.电脑上必须安装了Maven环境,也就是配置了Maven的环境变量,可以使用mvn命令(用mvn -v查看是否配置,没有配置的同学移步百度进行安装配置)

3.使用如下命令:

mvn install:install-file -Dfile={jar包所在地址} -DgroupId={jar包的公司名} -DartifactId={jar包项目名} -Dversion={jar包版本} -Dpackaging=jar

Dfile:jar包在本地中的路径
DgroupId:jar包的groupid
DartifactId:jar包的artifactId
Dversion:jar包的version
Dpackaging:包类型
示例:

比如我们有个jar包叫ojdbc6-11.2.0.3.jar

这个包远程仓库没有,pom文件标红,于是我们需要得到这个包的所在路径、包的公司名、包的项目名以及包的版本

jar包的所在路径:存放该jar包的位置,比如放在了桌面上/Users/cheng/Desktop/ojdbc6-11.2.0.3.jar

jar包的公司名:这个可以自由发挥,为了不要混淆该包,可以解压jar包去看看文件夹结构,这里我选择用com.oracle

jar包的项目名:根据jar包名,用ojdbc6

jar包的版本:根据jar包名,用11.2.0.3

那么我需要在控制台输入如下命令:

mvn install:install-file -Dfile=/Users/chenghuang/Desktop/ojdbc6-11.2.0.3.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar

2.jar包放到项目中,maven读取打包
适用场景:

项目上传git的时候不在意是否上传了jar包,这样可以省略每个人都去执行第一种方法,一劳永逸

解决思路:

1.在项目的根目录下(就是和.idea或者src同级的目录)建一个文件夹叫lib(取名随意)

2.把jar包复制进去

3.在pom的中加入如下配置:(还是以ojdbc6-11.2.0.3.jar举例)

 

        <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>11.2.0.3</version>
                <scope>system</scope>
                <systemPath>${project.basedir}/lib/ojdbc6-11.2.0.3.jar</systemPath>
        </dependency>

groupId:jar包公司名
artifactId:jar包项目名
version:jar包版本
scope:jar包作用域,为system意思在本地找
systemPath:jar包在本地的哪里,${project.basedir}/lib/{jar包名称}标识在项目根目录下的lib文件中
那么现在maven可以找到该jar包,但是打包的时候maven是不知道把lib下的jar包打进去的,还需要如下配置:

        <dependencies>
            //...
        </dependencies>
        <build>
        <resources>
            <!--将项目根目录下的lib文件中的jar包全部打入BOOT-INF/lib文件下-->
            <resource>
                <directory>lib</directory>
                <targetPath>BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <!--将项目根目录下的src/main/resources文件中的配置文件全部打入默认文件下-->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                    <include>**/*.yml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>



前一个resource的意思是打包的时候把lib下的jar包打包时放到/BOOT-INF/lib/这个目录下,这个目录也是SpringBoot的jar包存放之处,但配置了这个属性后,原本的默认打包方法被覆盖了,还需要把项目中src/main/resources下的各种配置文件打包到原默认位置,也就多了后一个resource
 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值