真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何自定義archetype

這篇文章主要介紹了如何自定義archetype,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

青秀網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)。

雖然maven已經(jīng)提供了maven-archetype-webapp、maven-archetype-quickstart等項目骨架幫助我們快速構建項目架構,但是默認提供的archetype初始化的項目架構并不能滿足開發(fā)需求,這時候就有必要自己寫一個滿足項目需求的archetype了

使用自定義archrtype生成的項目結構圖

為了激發(fā)閱讀興趣,先放一張使用自定義archetype生成項目的項目結構圖 如何自定義archetype 基本上的類都是archetype生成的

archetype是什么

可以簡單的理解為模板工具類,通過archetype我們可以快速的生成項目的基本架構。比如我們使用idea創(chuàng)建一個maven web項目時,常常會選擇maven-archetype-webapp模板來初始化項目,使用maven-archetype-webapp生成的項目中包括webapp目錄,里面包含web的配置文件 如何自定義archetype

archetype的組成

要想寫一個自定義archetype,首先得知道一個archetype的組成。archetype由四部分組成:

  • prototype files 原型文件
    位于src/main/resources/archetype-resource目錄下。prototype files 原型文件可以理解為多模塊中的子模塊或是單模塊工程中的源文件[即src文件]。這些原型文件在使用對應archetype生成項目時被生成

  • archetype-metadata.xml
    位于src/main/resources/META-INF/maven/目錄下。該配置文件中主要列出了原型文件以及使用archetype生成模板工程需要的參數(shù)

  • prototype pom
    位于src/main/resources/archetype-resources目錄下。這個pom文件會出現(xiàn)在archetype創(chuàng)建的模板工程中,如果是單模塊工程,則是對整個項目的依賴管理;如果是多模塊工程,該pom是總pom文件,該文件中會定義項目的子模塊以及對子模塊的依賴進行管理等,子模塊pom定義在子模塊下,子模塊pom文件只管理子模塊的依賴。

  • archetype pom
    位于自定義archetype工程的根目錄下。這是archetype工程項目的pom文件,里面一般沒什么東西,不會出現(xiàn)在archetype創(chuàng)建的模板工程中

superman[自定義archetype]結構說明

  • superman項目結構圖 如何自定義archetype 包含了archetype的四個組成部分,兩個pom文件,一個archtype-metadata文件和五個原型文件[__rootArtifactId__-*],其中__rootArtifactId__在生成模板工程時會被傳入的值替代

  • archtype-metadata配置文件

    • 1.定義使用archetype生成模板工程需要傳入的參數(shù)

      
          
              
                  
                  com.h3t.test
              
              
                  
                  demo
              
              
                  
                  ${groupId}
              
          

      ${}標識的變量都是通過maven中的命令行傳進來的

    • 2.定義原型文件

          
                  
                      
                          src/main/java
                          
                              **/*.*
                          
                      
                      
                          src/test/java
                          
                              **/*.*
                          
                      
                      
                          src/main/resources
                          
                              **/*.*
                          
                      
                      
                          src/test/resources
                          
                              **/*.*
                          
                      
                  
              

      module屬性介紹: id:子模塊工程的artifactId dir:子模塊工程源文件在archetype-resources里對應的directory name :子模塊的名字.

  • prototype pom文件

    • 1.定義了五個子模塊

          
          
              ${rootArtifactId}-common
              ${rootArtifactId}-dao
              ${rootArtifactId}-service
              ${rootArtifactId}-web
              ${rootArtifactId}-model
          

    • 子模塊依賴版本統(tǒng)一管理

      
                  
                  
                      ${groupId}
                      ${rootArtifactId}-common
                      ${version}
                  
      
                  
                      ${groupId}
                      ${rootArtifactId}-dao
                      ${version}
                  
      
                  
                      ${groupId}
                      ${rootArtifactId}-service
                      ${version}
                  
      
                  
                      ${groupId}
                      ${rootArtifactId}-model
                      ${version}
                  
              
          

      子模塊所需依賴都定義在該pom中,子模塊使用依賴時不需要標簽

  • 原型文件以web模塊說明 如何自定義archetype 就是一個簡單的maven工程,里面寫了使用archetype生成模板項目的類


如何自定義archetype

附:superman archetype代碼


快速開始【superman archetype使用指南】

  • 1.下載源碼

    git clone https://github.com/TiantianUpup/superman.git

  • 2.打開superman工程,將其安裝到本地倉庫 運行如下命令

    mvn clean install

  • 3.使用自定義archetype初始化項目

    mvn archetype:generate 
    -DgroupId=com.h3t.test 
    -DartifactId=superman-demo 
    -Dversion=1.0.0-SNAPSHOT 
    -DarchetypeGroupId=com.h3t.study 
    -DarchetypeArtifactId=superman -DarchetypeVersion=0.0.1-SNAPSHOT -X -DarchetypeCatalog=local

    參數(shù)說明
    -DgroupId組ID,默認項目的包名的組ID相同
    DartifactId:項目唯一標識符,即項目名稱
    -DarchetypeGroupId:superman的組ID,值不需要進行修改
    -DarchetypeArtifactId:superman的artifactId,值不需要進行改變

  • 4.移動配置文件 因為使用archetype生成項目時會將resource下面的文件丟失,所以目前將配置文件放在了web模塊下的resource包下,創(chuàng)建項目成功后需手動將文件移動到web模塊下的resource文件夾下,并將resource文件成標記成Resources Root

  • 5.修改resource文件夾下的配置文件 該文件夾下有application.properties ,logback.properties,logback-spring.xml三個配置文件

    • application.properties配置文件的修改 application.properties 主要是Spring、MyBatisPlus和數(shù)據(jù)庫的配置信息

      spring.datasource.url=jdbc:MySQL://localhost:3306/your_database?characterEncoding=UTF8&serverTimezone=UTC
      spring.datasource.username=root
      spring.datasource.password=your password

      修改數(shù)據(jù)庫、密碼,默認用戶名為root

      mybatis-plus.mapper-locations=classpath*:/mapper/*.xml  
      # mybatis-plus.type-aliases-package=

      指定MybatisPlus實體類別名的包,即model模塊的po層包名,默認MybatiPlusmapper文件保存在resource下的mapper文件夾下,可自行修改

    • logback.properties配置文件的修改 logback.properties定義了error級別日志和info級別日志的保存地址

      LOG_ERROR_HOME=  
      LOG_INFO_HOME=

    • logback-spring.xml配置文件的修改 logback-spring.xml主要是日志輸出規(guī)則的定義,若為windows系統(tǒng)無需進行修改,若為linux osmac os,則需修改日志保存地址

      ${LOG_ERROR_HOME}//%d.log

      //修改為/

  • 6 使用代碼生成器生成controller、service、daopo層代碼 代碼生成器類位于service模塊下的generator包下,只需要初始化幾個字段值運行就可以生成相應的代碼。在運行前首先在項目根目錄下創(chuàng)建一個mp-generator-output文件夾,該文件夾的名字和OUTPUT_DIR字段值保持一致

    • PACKAGE_NAME
      生成代碼的包名,和項目的包名一致,負責復制過去代碼會有一些小問題 -OUTPUT_DIR 生成代碼保存文件地址,默認保存在項目下的mp-generator-output文件夾下,可以修改為自定義保存地址

    • AUTHOR
      注釋中作者的名字

    • DRIVER_NAME
      數(shù)據(jù)庫驅動

    • HOST
      數(shù)據(jù)庫主機號

    • PORT
      數(shù)據(jù)庫端口

    • DATABASE
      數(shù)據(jù)庫名字

    • USERNAME
      數(shù)據(jù)庫用戶名

    • PASSWORD
      數(shù)據(jù)庫密碼

  • 7.將生成的代碼移動到對應模塊對應包下

    • impl 對應實體類接口實現(xiàn)類

    • controller文件夾
      實體類對應的Controller,將該目錄下的類移到web模塊下的controller包下

    • mapper文件夾 實體類對應的DAO層,該目錄下包含xml文件和對應實體的接口類,將xml文件移到dao模塊resource 下的mapper文件夾下,需自行建立mapper文件夾,將接口移到dao模塊下的mapper包下并在接口類上添加@Mapper注解,需自行建立 mapper包。同時將resource文件夾標記成Resources root

    • service 對應實體類接口

      service目錄下的接口移到service模塊下的service包下,impl目錄下的類移到service模塊下的service.impl包下

    • po文件夾 將該目錄下的類移到model模塊下的po包下,并修改繼承關系,統(tǒng)一繼承BasePO類,因為BasePO類 包含了id、gmtCreate、gmtModified、deleted這些數(shù)據(jù)庫基本字段,需將生成的實體類手動刪除這些重復字段。同時自動生成的po類缺失了@TableName、@TableField注解需手動補充。注解的使用方式可參考BasePO

  • 8.修改web模塊aspect包下的環(huán)繞通知

    @Around("execution(* yourpackage.controller..*(..))")

    該切面主要用于攔截controller層返回的結果,將其封裝成統(tǒng)一結果返回

  • 9 啟動項目
    web模塊下的Runner類為啟動類,運行該類即可啟動,默認端口為8081

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何自定義archetype”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!


網(wǎng)頁名稱:如何自定義archetype
文章分享:http://weahome.cn/article/jchjhd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部