Maven 引入非镜像外部Jar包的详解以及如何将本地jar包推送到maven远程仓库中

项目开发过程中可能会需要引入一些非maven仓库的存在的jar包,比如jar是ant打包过来的。这个时候maven上传包到仓库可能会很困难,就绪要在项目中手动去引用jar包。

Maven 引入外部Jar包方式


    dingding
    dingding
    2.8
    system
    ${project.basedir}/lib/taobao-sdk-java.jar

属性说明:

  • groupId:自定义
  • artifactId:自定义
  • version:自定义
  • scope:必须是system
  • systemPath:jar包的路径(idea编写的时候会有提示的)

通过上述方式,在开发环境没有什么问题,不会存在什么包找不到等情况。但是,maven project 部署一般打包发布,所以打包是需要额外配置的(上述的第一二中方式不需要做额外处理)以上方式是maven引用本地依赖,但只是引用,可能在idea中开发书写代码的时候没有什么问题。但打包或运行会产生,这个时候需要打包得时候把外部jar包打包到可加载jar路径。

处理项目打包

1.resource方式处理打包

 
   
    
      lib
      /BOOT-INF/lib/
      
        **/*.jar
      
    
   
 

directory:指定lib文件夹的位置,由于是相对工程根目录,所以直接写上lib即可。
targetPath:打包到的文件夹位置,写上BOOT-INF/lib即可,或者是WEB-INF/lib。。
includes:一般都是以jar结尾,就写*/.jar。

2.spring-boot-maven-plugin


    org.springframework.boot
    spring-boot-maven-plugin
    ${spring-boot.version}
    
        
        true
    
    
        
            
                repackage
            
        
    

3.推送包到maven仓库中,然后进行引用

安装jar包到本地仓库中
mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar
然后maven引入


    dingding
    dingding
    2.8

推送包到远程仓库

mvn deploy:deploy-file -DgroupId=com.zhenai.dakehu -DartifactId=dakehu-commons -Dversion=1.0.0-SNAPSHOT -Dpacckaging=jar -Dfile=dakehu-commons-1.0.0-SNAPSHOT.jar -DrepositoryId=maven-snapshots -Durl=http://112.124.33.150:8081/repository/maven-snapshots/

这3中方式任选一种即可。

4.maven clean deploy

如果直接有源码的话可以直接在idea中先clean再deploy上去。不过要在根pom中先配置好仓库地址信息。



    
        nexus-releases
        
            http://172.17.103.59:8081/nexus/content/repositories/releases/  
        
    
    
        nexus-snapshots
        
            http://172.17.103.59:8081/nexus/content/repositories/snapshots/  
        
    

maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)

Idea操作

image.png

命令操作

mvn clean install -s xxxSetting.xml

你可能感兴趣的:(Maven 引入非镜像外部Jar包的详解以及如何将本地jar包推送到maven远程仓库中)