Maven引用本地jar包以及打包发布注意事项

1、Maven引用本地jar包

  • 首先在resources目录下创建名为【lib】的文件夹,然后将本地jar包放入该文件夹下,如图

Maven引用本地jar包以及打包发布注意事项_第1张图片

  •  然后在pom文件中引用该jar包

    org.openqa.selenium
    selenium-commons
    system
    ${basedir}/src/main/resources/lib/selenium-commons-4.4.2.jar
    4.2.2

2、maven编译时找不到本地引用的jar包

在maven编译完成后,运行jar包的时候报错找不到本地引用的jar包,需要在pom文件中build中的【spring-boot-maven-plugin】中加一段配置增加配置:

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

同步下maven后重新编译发现问题解决。


3、Maven将本地jar包添加到本地仓库【可被pom文件调用】

  • 首先确保本地存在maven环境,然后进入settings文件查看setting配置本地仓库路径,入下图所示:

Maven引用本地jar包以及打包发布注意事项_第2张图片

  • 然后将本地jar包放到一个目录下

Maven引用本地jar包以及打包发布注意事项_第3张图片

  • 在文件路径输入cmd直接进入cmd控制台。 
  • 指定jar包在maven仓库的groupId,artifactId,version等信息:

    com.bw
    mqtt-producer
    1.1.2
  • 接着在cmd执行maven命令:
mvn install:install-file "-Dfile=mqtt-producer-1.1.2.jar" "-DgroupId=com.bw" "-DartifactId=mqtt-producer" "-Dversion=1.1.2" "-Dpackaging=jar"

Maven引用本地jar包以及打包发布注意事项_第4张图片

看到SUCCESS则表示上传成功。

  • 最后到 setting配置本地仓库路径下查看仓库是否添加成功

Maven引用本地jar包以及打包发布注意事项_第5张图片

Maven引用本地jar包以及打包发布注意事项_第6张图片

 上图可以看到添加成功。最后pom文件刷新可看到本地仓库引用成功。


 4、maven编译后将项目中用到的jar包拷贝到target某文件夹下

在pom中添加如下配置


    
    
        org.apache.maven.plugins
        maven-dependency-plugin
        
            
                copy-lib
                package
                
                    copy-dependencies
                
                
                    target/lib
                    false
                    false
                    runtime
                
            
        
    
    
        org.apache.maven.plugins
        maven-jar-plugin
        
            
                
                false
                
                    
                    true
                    
                    lib/
                    
                    com.saas.reptile.ReptileApplicatio
                
            
        
    

maven编译后可以在target中看到生成的jar包,如下图:

Maven引用本地jar包以及打包发布注意事项_第7张图片


5、maven编译打包时不编译项目中的依赖包

需要在pom文件中build中的【spring-boot-maven-plugin】中增加配置:


    org.springframework.boot
    spring-boot-maven-plugin
    
        ZIP
        
        
            
                nothing
                nothing
            
        
    

再配合上述的将项目中用到的jar包拷贝到target某文件夹下的【build】配置,将依赖包从项目jar包中完全抽离出来;

最后发布jar包的时候在jar包同级目录创建名为【lib】的文件夹,作为jar包外部依赖,如下图所示

Maven引用本地jar包以及打包发布注意事项_第8张图片


6、maven编译打war包

  • 首先在启动类中继承SpringBootServletInitializer类,并重写SpringApplicationBuilder的configure方法。
@SpringBootApplication
@ServletComponentScan
@EnableScheduling
public class DemoApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder springApplicationBuilder) {
        return springApplicationBuilder.sources(DemoApplication.class);
    }
 
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
  • 其次改动pom文件

首先将改成【war】;

然后排除【spring-boot-starter-web】依赖包中的tomcat依赖;

最后加入【javax.servlet】依赖。


    org.springframework.boot
    spring-boot-starter-web

    
        
            org.springframework.boot
            spring-boot-starter-tomcat
        
    



    javax.servlet
    javax.servlet-api
    provided
  • 最后修改build

    
    dsm
    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
        
        
            maven-war-plugin
            3.1.0
        
        
            
            org.apache.maven.plugins
            maven-deploy-plugin
            
            
                true
            
        
    

你可能感兴趣的:(#,集成部署,maven,jar,java)