Maven自定义项目骨架以及自动生成项目结构

通常来说,公司针对某一类型的业务的技术架构是一致的,采用的技术框架和项目目录结构是规范统一的。如果每次新立项一个项目,都手动去创建同样的项目目录结构,这其实会浪费一些不必要的时间,降低开发效率,而且很容易破坏开发规范。我们知道Maven是一个非常易用方便的依赖管理插件,但其实Maven的作用并非只是依赖管理,其实它还有一个非常有用的功能——创建统一的项目结构骨架以及根据某个骨架生成自定义的项目结构。这样子在新开设一个项目的时候,通过统一的骨架来生成对应初始的项目结构,从而实现代码的规范开发和管理。

1. 使用Maven生成项目骨架

我们先来看一下需要生成的项目的整体目录结构,com/testcampus是我们针对目标项目的包名,一般一个独立的项目对应一个独立的包名,所以我们的骨架必须支持包名的自定义,当然包的路径下可能存在一些统一的类,比如说专门做手机端h5的可能在controller下会固定有一个MobileController来专门负责手机端的请求处理,所以我们的骨架也必须支持自定义类。

Maven自定义项目骨架以及自动生成项目结构_第1张图片
公司规定的项目目录结构.png

1.1 我们来建一个骨架项目
IDEA-->File-->New-->Project-->Maven-->create from archetype-->maven-archetype-webapp
Maven自定义项目骨架以及自动生成项目结构_第2张图片
填写骨架的maven配置.png

1.2 创建需要的目录结构
Maven自定义项目骨架以及自动生成项目结构_第3张图片
创建项目结构.png

由于包名使用的是自定义参数__ baseDir __( 参数前后都是双下线),所以我们的类所在的包名也必须跟着变量而改变,而目录结构的参数形式是 com/demo,但是包名的形式是 com.demo,所以我们必须使用另外一个变量来定义包名( 这里使用的是basePackage作为参数)

1.3 创建默认的类文件
这里需要用到Spring和Spring MVC我们先添加依赖


    4.0.0
    com.wind
    archetype-demo
    war
    1.0-SNAPSHOT
    archetype-demo Maven Webapp
    http://maven.apache.org

    
        
            org.springframework
            spring-context
            4.3.13.RELEASE
        

        
            org.springframework
            spring-web
            4.3.13.RELEASE
        

        
            org.springframework
            spring-webmvc
            4.3.13.RELEASE
        

        
            junit
            junit
            3.8.1
            test
        
    
    
        archetype-demo
        
            
                org.apache.maven.plugins
                maven-resources-plugin
                2.4
                
                
                    true
                
            
        
    


1.4 开始生成骨架

  • 打开cmd进入骨架所在目录(D:\work\StudyProjects\archetypedemo),执行命令mvn clean archetype:create-from-project
    创建骨架项目初始命令1.png
  • 添加构建骨架配置和参数
  1. 进入项目路径\target\generated-sources\archetype\src\main\resources\META-INF\maven;编辑archetype-metadata.xml文件


    
    
        
            com.testcampus
        
               
        
        test/testcampus
        
    
              
  
    
      src/main/java
      
        **/*.java
      
    
    
    
      src/main/java/__baseDir__/controller
    
    
    
      src/main/java/__baseDir__/service
    
    
    
      src/main/webapp
      
        **/*.jsp
        **/*.xml
      
    
    
      .idea
      
        **/*.xml
      
    
    
      .idea/artifacts
      
        **/*.xml
      
    
    
      .idea/libraries
      
        **/*.xml
      
    
    
      
      
        archetypedemo.iml
      
    
  

  1. 进入项目路径\target\generated-sources\archetype\src\test\resources\projects\basic;编辑archetype.properties文件
#Mon Mar 26 18:53:52 CST 2018
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=basic
#配置自定义参数
baseDir=com/googletool
basePackage=com.googletool
  1. 项目路径\src下的所有文件复制到项目路径\target\generated-sources\archetype\src\main\resources\archetype-resources\src
  2. 删除项目路径\target\generated-sources\archetype下的target目录,然后复制当前目录下的到项目路径下(注意先把项目路径下的所有东西删掉)
  3. 进入项目目录,执行命令:mvn clean install,执行结果看到success表示执行成功
    Maven自定义项目骨架以及自动生成项目结构_第4张图片
    执行结果部分截图.png
  4. 去本地Maven仓库查看,确实存在我们刚刚生成的骨架


    Maven自定义项目骨架以及自动生成项目结构_第5张图片
    本地Maven仓库.png
  5. 测试使用刚生成的骨架来创建项目目录结构
    我在骨架项目的同等路径下创建一个test文件夹,我们把生成的项目放到test目录下;cmd进入test目录(D:\work\StudyProjects\test),执行命令:
mvn archetype:generate -B -DarchetypeGroupId=com.wind -DarchetypeArtifactId=archetype-demo-archetype 
-DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.testcampus -DartifactId=test-campus-archetype 
-Dversion=1.0-SNAPSHOT -DbaseDir=com/testcampus -DbasePackage=com.testcampus -DarchetypeCatalog=local 

然后进入test目录下就可以看到生成的项目结构了

你可能感兴趣的:(Maven自定义项目骨架以及自动生成项目结构)