教你如何新建一个NB的Maven工程

通常我们看社区源码或者下载社区代码安装后发现,社区工程通常有bin、conf、lib等目录,从而代码结构十分清晰,如何做到的呢?

首先,来看看我们平常遇到的痛点。

  • 痛点一:war包大,传输费劲。tomcat我们相信老司机最熟悉不过,但你肯定对于最后打完的包含第三方包的war包很头疼,每次传输war包好耗费很多的时间。
  • 痛点二:配置打在包里,更新不便。仅仅更新一个配置文件时,都需要重新打包。

---------------华丽的分割线---------------

下面教你新建一个NB的代码工程结构,最终的效果便是,我们有bin(存放脚本)、conf(存放配置)、lib(存放jar包)。

  • 1 新建一个maven工程:demo
  • 2 工程下新建三个目录:bin、conf、lib。
    bin下包含三个脚本:demo-start、demo-stop、demo-restart
    conf下包含一个配置模板:demo.properties.template
  • 3 工程下新建若干子工程,其中包括一个叫packaging的子工程(这个是重点)
  • 4 当然你还可以新建一个工程说明文档:README.MD
image.png

pom配置:



    4.0.0

    org.jeff.r.demo
    demo
    pom
    1.0-SNAPSHOT
    
        demo-common
        demo-service
        demo-client
        packaging
    

    
        3.1
        2.3
        2.7.2-2322
    

    
        
            
                
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    ${maven.compiler.plugin.version}
                    
                        1.7
                        1.7
                    
                
                
                    org.apache.maven.plugins
                    maven-assembly-plugin
                    ${maven.assembly.plugin.version}
                
            
        
    

packaging工程配置:

新建目录assembly,并在其下建配置文件bin.xml
bin.xml



    bin

    
        tar
        dir
    

    demo-${project.version}-bin

    
        
            lib
            false
            false
            true
            true
            
                org.apache.hadoop:*
                org.slf4j:*
            
        
    

    
        
            ${project.parent.basedir}
            
                **/target/**
                **/.classpath
                **/.project
                **/.setting/**
                lib/**
            
            
                README.MD
            
            /
        

        
            755
            ${project.parent.basedir}/conf
            
                *
            
            conf
        

        
            755
            ${project.parent.basedir}/bin
            
                demo-start.sh
                demo-restart.sh
                demo-stop.sh
            
            bin
        
    


packaging.pom



    
        demo
        org.jeff.r.demo
        1.0-SNAPSHOT
    
    4.0.0

    packaging

    
        
            dist
            
                
                    
                        org.apache.maven.plugins
                        maven-assembly-plugin
                        
                            
                                assemble
                                package
                                
                                    single
                                
                                
                                    demo-${project.version}
                                    
                                        src/main/assembly/bin.xml
                                        
                                    
                                    gnu
                                
                            
                        
                    
                
            
        
    

    
        
            org.jeff.r.demo
            demo-common
            ${project.version}
        
        
            org.jeff.r.demo
            demo-service
            ${project.version}
        
        
            org.jeff.r.demo
            demo-client
            ${project.version}
        
        
            org.apache.hadoop
            hadoop-common
            2.7.2-2322
        
        
            org.apache.hadoop
            hadoop-client
            2.7.2-2322
        
    

编译打包:

mvn clean package -DskipTests -Pdist

参考文献:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_dependencySet

你可能感兴趣的:(教你如何新建一个NB的Maven工程)