Maven引入与打包指定目录下的第三方sdk的几种方法

 更新时间:2024年09月11日 10:24:55   作者:lambda.  
本文主要介绍了Maven引入与打包指定目录下的第三方sdk的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

针对远程仓库没有的jar包,应该如何引入与打包?

1、deploy到远程仓库

申请账号与权限,使用mvn deploy命令发布到远程仓库或者是私有仓库。

1、在Maven的conf/settings.xml文件配置远程仓库的认证信息

<settings>
  <!-- 配置远程仓库的认证信息(以id标签为标识) -->
  <servers>
    <server>
      <id>nexus</id>
      <username>your-nexus-username</username>
      <password>your-nexus-password</password>
    </server>
  </servers>
</settings>

3、使用deploy命令发布到远程仓库

mvn deploy:deploy-file \
-DgroupId=com.dist.model \
-DartifactId=dist-model-api \
-Dversion=1.0.0-SNAPSHOT \
-Dpackaging=jar \
-Dfile=/Users/laizhenghua/Downloads/jar/dist-model-api-1.0.0-SNAPSHOT.jar \
-Durl=http://10.60.10.38:8081/repository/maven-releases \
-DrepositoryId=nexus

这种方式是比较推荐的,所有的依赖都在远程仓库上进行管理,其他人使用时直接添加GAV坐标即可,无需添加额外的配置,非常简单与方便。

2、install到本地仓库

mvn install:install-file \
-Dmaven.repo.local=/Users/laizhenghua/soft/maven/repository \
-DgroupId=com.dist.engine \
-DartifactId=dist-engine-material \
-Dversion=5.0.9-SNAPSHOT \
-Dpackaging=jar \
-Dfile=/Users/laizhenghua/Downloads/jar/dist-engine-material-5.0.9-SNAPSHOT.jar

# 命令参数说明
# -Dmaven.repo.local 本地仓库位置
# -DgroupId gav坐标信息的g
# -DartifactId gav坐标信息的a
# -Dversion gav坐标信息的v
# -Dpackaging 文件类型
# -Dfile 文件

install到本地后,也是添加GAV坐标就能在当前工程引入此依赖,但是这种方式协同开发不方便,其他人也要用到此依赖时,也需要拿到jar包后,在本地手动install一下,无法做到共享。

3、通过idea的Add as Library引入

在当前工程新建lib目录,将第三方的sdk或jar包都放到此目录下,如

在这里插入图片描述

在通过idea的Add as Library...功能就能引入第三方的SDK或者是jar包,如下图

但是这种方式也有弊端,比如其他人接手此项目时,也得手动Add as Libraty...不太方便。

4、基于3的改进通过Maven配置引入

方式3有一定的局限性,我们希望其他人接手项目时,不需要做任何改动也能正常引入所有依赖正常启动项目。

1、Maven引入指定目录的jar,即读取本地的jar

<!--
1.新增scope和systemPath标签
2.${project.basedir}就是当前工程目录
-->
<dependency>
    <groupId>com.dist.sdk</groupId>
    <artifactId>sdk-api</artifactId>
    <version>5.0.8-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/sdk-api-5.0.8-SNAPSHOT.jar</systemPath>
</dependency>

2、增加打包扫描的配置,否则打包时不会将scope=system的依赖打进去。

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <!--增加这个配置-->
        <configuration>
            <skip>true</skip>
            <includeSystemScope>true</includeSystemScope>
        </configuration>
        <executions>
            <execution>
                <phase>none</phase>
            </execution>
        </executions>
    </plugin>
</plugins>

详见下图

3、打jar包发布运行时,仍然没有把scope=system的依赖打进去,就需要新增如下配置

<resources>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
    <!--jar包添加第三方lib-->
    <resource>
        <directory>${project.basedir}/lib</directory>
        <targetPath>BOOT-INF/lib/</targetPath>
        <includes>
            <include>*.jar</include>
        </includes>
    </resource>
</resources>

4、打war包时需要通过插件配置指定lib目录才行,如

<!--war包添加第三方lib-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <webResources>
            <resource>
                <directory>${project.basedir}/lib</directory>
                <targetPath>WEB-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
        </webResources>
    </configuration>
</plugin>

到此这篇关于Maven引入与打包指定目录下的第三方sdk的文章就介绍到这了,更多相关Maven引入打包第三方sdk内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 一文详解Spring 中的顺序问题

    一文详解Spring 中的顺序问题

    本文主要介绍了Spring 中的顺序问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Java this关键字的引用详解

    Java this关键字的引用详解

    每个类中都有一个本类的this引用,类似:类名 this;实例对象时,this引用指向对象本身,其最主要的作用是让类中的方法可以访问本类中的另外一个方法或属性,因为调用一个方法或属性(非类方法/属性)必须要有实例
    2022-03-03
  • jedis的return行为源码解析

    jedis的return行为源码解析

    这篇文章主要为大家介绍了jedis的return行为源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • java接入创蓝253短信验证码的实例讲解

    java接入创蓝253短信验证码的实例讲解

    下面小编就为大家分享一篇java接入创蓝253短信验证码的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • CommonMark 使用教程:将 Markdown 语法转成 Html

    CommonMark 使用教程:将 Markdown 语法转成 Html

    这篇文章主要介绍了CommonMark 使用教程:将 Markdown 语法转成 Html,这个技巧我们做任何网站都可以用到,而且非常好用。,需要的朋友可以参考下
    2019-06-06
  • 一篇文章带你学习JAVA MyBatis底层原理

    一篇文章带你学习JAVA MyBatis底层原理

    近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,本文就详细总结了MyBatis工作原理,,需要的朋友可以参考下
    2021-09-09
  • springcloud配置ssh的问题及解决方法

    springcloud配置ssh的问题及解决方法

    这篇文章主要介绍了springcloud配置ssh,本文给大家介绍在配置过程中遇到的问题及解决方法,通过结合实例给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • springboot+vue实现SSE服务器发送事件的示例

    springboot+vue实现SSE服务器发送事件的示例

    本文介绍了使用Spring Boot和Vue实现服务器发送事件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • java数据结构与算法之中缀表达式转为后缀表达式的方法

    java数据结构与算法之中缀表达式转为后缀表达式的方法

    这篇文章主要介绍了java数据结构与算法之中缀表达式转为后缀表达式的方法,简单分析了java中缀表达式转为后缀表达式的相关实现方法与技巧,需要的朋友可以参考下
    2016-08-08
  • Spring基于xml实现自动装配流程详解

    Spring基于xml实现自动装配流程详解

    自动装配是使用spring满足bean依赖的一种方法,spring会在应用上下文中为某个bean寻找其依赖的bean,Spring中bean有三种装配机制,分别是:在xml中显式配置、在java中显式配置、隐式的bean发现机制和自动装配
    2023-01-01

最新评论