热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java如何实现自定义zip包

java如何实现自定义zip包?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你

java如何实现自定义zip包?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1.配置pom.xml文件,添加build节点


    
    p2p


    src/main/java

    
      
      
        src/main/resources
        
          **/*.properties
          **/*.xml
        
        
        
          config.properties
        
      
      
      
        src/main/resources
        
          config.properties
        
        ${project.build.directory}/config
      
    

    
      
      
        org.apache.maven.plugins
        maven-compiler-plugin
        3.1
        
          1.7
          1.7
          UTF-8
        
      

      
      
        org.apache.maven.plugins
        maven-jar-plugin
        
          
            
            
              com.hdwang.Application
              true
              lib/
            
            
            
              config/
            
          
          
          
        
      


      
      
        org.apache.maven.plugins
        maven-dependency-plugin
        
          
            copy
            package
            
              copy-dependencies
            
            
              
                ${project.build.directory}/lib
              
            
          
        
      


      
      
        org.apache.maven.plugins
        maven-resources-plugin
        2.5
        
          UTF-8
        
      

      
      
        org.apache.maven.plugins
        maven-assembly-plugin
        2.2.1
        
          
            src/main/assembly/assembly.xml
          
        
        
          
            make-assembly
            package
            
              single
            
          
        
      
    
  

这个pom配置文件中注意红色字体部分,这是实现配置文件外置的关键配置,思路就是配置文件不打进jar包,放置到外面,且将此文件夹设置为classpath,这样子程序便可以通过根据classloader很方便地读取到配置文件了。下面给出读取配置文件的java代码,在IDE运行时和打包后,代码都不用修改,因为配置文件总能从classpath路径中找到!!!

java如何实现自定义zip包

工具包的maven信息


  commons-configuration
  commons-configuration
  1.10

2.新建maven-assembly-plugin插件的配置文件assembly.xml,内容如下


  bin
  
    zip
  
  
  
    
      
      
      
    
  
  
    
    
      target
      
        *.jar
      
      /
    
    
      target/lib
      /lib
    
    
      target/config
      /config
    

    
    
      src/main/run
      
        *.sh
        *.cmd
      
      /
    
    
      src/main
      
        ReadMe.txt
      
      /
    
  

这个插件在package生命周期中运行,执行mvn package或者mvn install便可触发此插件的执行。这里我注释掉了拷贝依赖包的代码,是因为在pom.xml文件中已经配置了maven-dependency-plugin执行这样的操作,无须重复配置。fileSet可以配置需要拷贝压缩的文件,directory路径相对于项目根目录,outputDirectory路径相对于输出目录target,includes可以对拷贝的文件进行筛选。这里可以拷贝压缩输出目录的文件,应该就是因为此插件运行在程序编译打包之后,这样子就达到了我们自定义打包的要求:编译->拷贝资源文件->项目打包->拷贝依赖的jar包-> assembly进行拷贝压缩。然后使用打出的zip包就可以去部署发布了,解压后就能运行。

3.程序打包流程示意图

java如何实现自定义zip包

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程笔记行业资讯频道,感谢您对编程笔记的支持。


推荐阅读
author-avatar
你是我的梦境吗_574
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有