摘要:這個文件會出現在創建的模板工程中,如果是單模塊工程,則是對整個項目的依賴管理如果是多模塊工程,該是總文件,該文件中會定義項目的子模塊以及對子模塊的依賴進行管理等,子模塊定義在子模塊下,子模塊文件只管理子模塊的依賴。
雖然maven已經提供了maven-archetype-webapp、maven-archetype-quickstart等項目骨架幫助我們快速構建項目架構,但是默認提供的archetype初始化的項目架構并不能滿足開發需求,這時候就有必要自己寫一個滿足項目需求的archetype了使用自定義archrtype生成的項目結構圖
為了激發閱讀興趣,先放一張使用自定義archetype生成項目的項目結構圖
基本上的類都是archetype生成的
可以簡單的理解為模板工具類,通過archetype我們可以快速的生成項目的基本架構。比如我們使用idea創建一個maven web項目時,常常會選擇maven-archetype-webapp模板來初始化項目,使用maven-archetype-webapp生成的項目中包括webapp目錄,里面包含web的配置文件
要想寫一個自定義archetype,首先得知道一個archetype的組成。archetype由四部分組成:
prototype files 原型文件
位于src/main/resources/archetype-resource目錄下。prototype files 原型文件可以理解為多模塊中的子模塊或是單模塊工程中的源文件[即src文件]。這些原型文件在使用對應archetype生成項目時被生成
archetype-metadata.xml
位于src/main/resources/META-INF/maven/目錄下。該配置文件中主要列出了原型文件以及使用archetype生成模板工程需要的參數
prototype pom
位于src/main/resources/archetype-resources目錄下。這個pom文件會出現在archetype創建的模板工程中,如果是單模塊工程,則是對整個項目的依賴管理;如果是多模塊工程,該pom是總pom文件,該文件中會定義項目的子模塊以及對子模塊的依賴進行管理等,子模塊pom定義在子模塊下,子模塊pom文件只管理子模塊的依賴。
archetype pom
位于自定義archetype工程的根目錄下。這是archetype工程項目的pom文件,里面一般沒什么東西,不會出現在archetype創建的模板工程中
superman項目結構圖
包含了archetype的四個組成部分,兩個pom文件,一個archtype-metadata文件和五個原型文件[__rootArtifactId__-*],其中__rootArtifactId__在生成模板工程時會被傳入的值替代
archtype-metadata配置文件
1.定義使用archetype生成模板工程需要傳入的參數
com.h2t.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
子模塊依賴版本統一管理
${groupId} ${rootArtifactId}-common ${version} ${groupId} ${rootArtifactId}-dao ${version} ${groupId} ${rootArtifactId}-service ${version} ${groupId} ${rootArtifactId}-model ${version}
子模塊所需依賴都定義在該pom中,子模塊使用依賴時不需要
原型文件以web模塊說明
就是一個簡單的maven工程,里面寫了使用archetype生成模板項目的類
附:superman archetype代碼
1.下載源碼
git clone https://github.com/TiantianUpup/superman.git
2.打開superman工程,將其安裝到本地倉庫
運行如下命令
mvn clean install
3.使用自定義archetype初始化項目
mvn archetype:generate -DgroupId=com.h2t.test -DartifactId=superman-demo -Dversion=1.0.0-SNAPSHOT -DarchetypeGroupId=com.h2t.study -DarchetypeArtifactId=superman -DarchetypeVersion=0.0.1-SNAPSHOT -X -DarchetypeCatalog=local
參數說明
-DgroupId組ID,默認項目的包名的組ID相同
DartifactId:項目唯一標識符,即項目名稱
-DarchetypeGroupId:superman的組ID,值不需要進行修改
-DarchetypeArtifactId:superman的artifactId,值不需要進行改變
4.移動配置文件
因為使用archetype生成項目時會將resource下面的文件丟失,所以目前將配置文件放在了web模塊下的resource包下,創建項目成功后需手動將文件移動到web模塊下的resource文件夾下,并將resource文件成標記成Resources Root
5.修改resource文件夾下的配置文件
該文件夾下有application.properties ,logback.properties,logback-spring.xml三個配置文件
application.properties配置文件的修改
application.properties 主要是Spring、MyBatisPlus和數據庫的配置信息
spring.datasource.url=jdbc:mysql://localhost:3306/your_database?characterEncoding=UTF8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=your password
修改數據庫、密碼,默認用戶名為`root` ``` mybatis-plus.mapper-locations=classpath*:/mapper/*.xml # mybatis-plus.type-aliases-package= ``` 指定`MybatisPlus`實體類別名的包,即`model`模塊的`po`層包名,默認`MybatiPlus`的`mapper`文件保存在`resource`下的`mapper`文件夾下,可自行修改
logback.properties配置文件的修改
logback.properties定義了error級別日志和info級別日志的保存地址
LOG_ERROR_HOME= LOG_INFO_HOME=
logback-spring.xml配置文件的修改
logback-spring.xml主要是日志輸出規則的定義,若為windows系統無需進行修改,若為linux os或mac os,則需修改日志保存地址
${LOG_ERROR_HOME}//%d.log
將`//`修改為`/`
6 使用代碼生成器生成controller、service、dao、po層代碼
代碼生成器類位于service模塊下的generator包下,只需要初始化幾個字段值運行就可以生成相應的代碼。在運行前首先在項目根目錄下創建一個mp-generator-output文件夾,該文件夾的名字和OUTPUT_DIR字段值保持一致
PACKAGE_NAME
生成代碼的包名,和項目的包名一致,負責復制過去代碼會有一些小問題
-OUTPUT_DIR
生成代碼保存文件地址,默認保存在項目下的mp-generator-output文件夾下,可以修改為自定義保存地址
AUTHOR
注釋中作者的名字
DRIVER_NAME
數據庫驅動
HOST
數據庫主機號
PORT
數據庫端口
DATABASE
數據庫名字
USERNAME
數據庫用戶名
PASSWORD
數據庫密碼
7.將生成的代碼移動到對應模塊對應包下
controller文件夾
實體類對應的Controller,將該目錄下的類移到web模塊下的controller包下
mapper文件夾
實體類對應的DAO層,該目錄下包含xml文件和對應實體的接口類,將xml文件移到dao模塊resource 下的mapper文件夾下,需自行建立mapper文件夾,將接口移到dao模塊下的mapper包下并在接口類上添加@Mapper注解,需自行建立 mapper包。同時將resource文件夾標記成Resources root
service 對應實體類接口
- `impl` 對應實體類接口實現類
將`service`目錄下的接口移到`service`模塊下的`service`包下,`impl`目錄下的類移到`service`模塊下的`service.impl`包下
po文件夾
將該目錄下的類移到model模塊下的po包下,并修改繼承關系,統一繼承BasePO類,因為BasePO類 包含了id、gmtCreate、gmtModified、deleted這些數據庫基本字段,需將生成的實體類手動刪除這些重復字段。同時自動生成的po類缺失了@TableName、@TableField注解需手動補充。注解的使用方式可參考BasePO類
8.修改web模塊aspect包下的環繞通知
@Around("execution(* yourpackage.controller..*(..))")
該切面主要用于攔截controller層返回的結果,將其封裝成統一結果返回
9 啟動項目
web模塊下的Runner類為啟動類,運行該類即可啟動,默認端口為8081
附:superman archetype生成demo工程地址
歡迎fork與star[劃重點],由于開發經驗有限,有些地方可能考慮不周,歡迎提bug。并且該archetype只定義了一些基礎功能,歡迎提需求。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76141.html
摘要:納尼隔壁少林派表示自家金剛技壓群雄在座各位都是。。。納尼你覺得寫太繁瑣了你不喜歡我們還有或者等等一大堆工具呢。納尼沒有你還是覺得無法接受好吧那么筆者推薦類似這類更友好的工具你可以導入導出其他格式也可以使用其來撰寫。 說起微服務, 想必現在的技術圈內人士個個都能談笑風云, 娓娓道來。的確, 技術變革日新月異, 各種工具框架雨后春筍般涌現, 現在我們可以輕巧便捷地根據自己的業務需求, 構建...
摘要:作者小傅哥博客沉淀分享成長,讓自己和他人都能有所收獲接下來還需要把我們創建的工程模板以及數據服務配置到中,這樣在插件啟動的時候就可以把我們自己插件啟動起來了。作者:小傅哥博客:https://bugstack.cn沉淀、分享、成長,讓自己和他人都能有所收獲!???? 接下來還需要把我們創建的工程模板以及數據服務配置到 plugin.xml 中,這樣在插件啟動的時候就可以...
摘要:自動化接入和升級方案通過命令行工具提供一鍵接入升級能力,同時集成到團隊腳手架中,大大降低了工程接入和維護的成本。原始代碼經過解析器的解析,在管道中逐一經過所有規則的檢查,最終檢測出所有不符合規范的代碼,并輸出為報告。 引言 代碼規范是軟件開發領域經久不衰的話題,幾乎所有工程師在開發過程中都會遇到,并或多或少會思考過這一問題。隨著前端應用的大型化和復雜化,越來越多的前端工程師和團隊開始重...
摘要:抽取文件插件引入入口配置多個實例使用正則匹配到每個頁面對應文件夾下的文件并配置來進行解析從而實現對插件實例引入方法總結一個簡易版的多頁面應用腳手架就這樣搞定啦是不是很簡單地址喜歡的童鞋給個哈您的支持就是我最大的動動動力 使用 webpack 構建多頁面應用 前言 之前使用 vue2.x + webpack3.x 擼了一個 vue 單頁腳手架 vue 版 spa 腳手架 有興趣的同學可以...
摘要:把打包的目錄修改成生產環境需要的目錄。是域名的配置只要統一配置一項即可,方便。旨在增強團隊開發協作提高代碼質量和打造開發基石的編碼規范,以下規范是團隊基本約定的內容,必須嚴格遵循。 Vue作為前端三大框架之一,其已經悄然成為主流,學會用vue相關技術來開發項目會相當輕松。 對于還沒學習或者還沒用過vue的初學者,基礎知識這里不作詳解,推薦先去相關官網,學習一下vue相關的基礎知識。 a...
閱讀 1315·2023-04-26 01:28
閱讀 2065·2021-11-08 13:28
閱讀 2316·2021-10-12 10:17
閱讀 2280·2021-09-28 09:46
閱讀 4141·2021-09-09 09:33
閱讀 3719·2021-09-04 16:40
閱讀 1077·2019-08-29 15:21
閱讀 2689·2019-08-26 17:17