maven第三方jar包打包(非spring boot)

对于第三方jar包,如果放在project中引入,pom中配置如下

 
            my.communication-protocol
            communication-protocol1.0.0
            1.0.0
            system
            ${project.basedir}/libs/communication-protocol-1.0.0.jar
            1.0
        

但是system会有问题,

1. 会导致传递依赖中断,比如:假设A项目依赖了m.jar,  n.jar, x.jar,  然后我们把A项目打包成了a.jar,  如果此时B项目依赖了A项目,则B项目通常自然就已经默认传递依赖了m.jar,  n.jar, x.jar,但是如果A项目的pom.xml文件出现了scope为system的depend,则B项目就只能依赖a.jar, 将无法传递依赖m.jar,  n.jar, x.jar

2.maven打包,不会将第三方jar打进去

解决方案一:

spring boot 添加true


  
    
      org.springframework.boot
      spring-boot-maven-plugin
      
        true
      
    
  

解决方案二:

1. 将第三方jar放入maven私服,或者放入本地仓库,放入私服需要配置 setting,如下,我这里没有配置,是默认的

maven第三方jar包打包(非spring boot)_第1张图片

2. 放入本地仓库

①添加本地仓库,mvn install:install-file -Dfile="D:\JavaProject\HwService\libs\jasperreports-6.8.0.jar" -DgroupId=com.jasperreports -DartifactId=jasperreports -Dversion=6.8 -Dpackaging=jar

②配置pom.xml,和正常配置一样


   
  com.jasperreports
  jasperreports
  6.8

解决方案三:

在maven-jar-plugin 里配置Class-Path


        org.apache.maven.plugins
        maven-jar-plugin
            2.3.1
            
                
                    
                    false
                    
                        com.alibaba.dubbo.container.Main
                        false
                         true
                         lib/
                     
                     
                        . lib/alipay-sdk.java.jar
                        111
                     
                
            

 

你可能感兴趣的:(Java)