maven打包可运行的jar

一:maven-jar-plugin


    
        
            maven-jar-plugin
            
                
                    
                        com.xxx.xxx.Main
                    
                
            
        
    

maven-jar-plugin用于生成META-INF/MANIFEST.MF文件的部分内容

com.xxg.Main

指定MANIFEST.MF中的Main-Class

排除目录


    maven-jar-plugin
    
        
        
            groovy/
        
    

排除文件,可以用通配符


    org.apache.maven.plugins
    maven-jar-plugin
    2.4
    
        
        
            log4j.properties
            conf.properties
            system.properties
            logback.xml
            log4j2.xml
        
    

二:maven-assembly-plugin


    org.apache.maven.plugins
    maven-assembly-plugin
    2.6
    
        
            jar-with-dependencies
        
        
            
                com.xxx.xxx.Main
            
        
    
    
        
            make-assembly
            package
            
                single
            
        
    

这里没有指定

src/main/assembly/assembly.xml  

而是用的


    jar-with-dependencies

这个jar-with-dependencies是assembly预先写好的一个,组装描述引用(assembly descriptor)

默认的compile scope范围是会打进jar包的,而且依赖也全部会打进去,所有有些包打完之后有可能会很大,可将scope范围改成provided,就不会打进去了。

指定打包输出的文件名


    CSV转Excel工具
    false
......


常规做法

一般项目都比较大,不会打成一个jar包,一般都是打成一个tar包,里面包含启动脚本,配置文件等

使用assembly插件

一般目录结构如下:

│
└─assembly
    │  assembly.xml
    │
    ├─bin
    │      dump.sh
    │      restart.sh
    │      server.sh
    │      start.sh
    │      stop.sh
    │
    └─conf
            log4j.properties
            system.properties

pom中配置assembly 插件


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

assembly.xml


    assembly
    
        tar.gz
    
    true
    
        
            src/main/assembly/bin
            bin
            0755
        
        
            src/main/assembly/conf
            conf
            0644
        
    
    
        
            lib
        
    

你可能感兴趣的:(maven打包可运行的jar)