Mavenのは、Mavenの-原型-webappのを提供してきましたが、このような骨格とのmaven-原型・クイックスタート・プロジェクトが急速にインフラ整備プロジェクトを構築するために私たちを助けますが、アーキテクチャとプロジェクト開発の原型を提供するデフォルトの初期化が需要を満たすことができない、この時間は、出会いを書き込む必要がありますプロジェクト要件の原型
生成されたarchrtypeを使用して、図のカスタム設定項目
読書への関心を刺激し、自己定義原型マップ生成プロジェクトを使用して、プロジェクトの構造を配置するには
基本的にはクラスがされているarchetype
あなたは本当に疲れ道を学ぶせるために、生成されました
原型とは何ですか
それは単に、テンプレートツールとして理解することができarchetype
、我々はすぐに基本的なインフラプロジェクトを作成することができます。例えば、我々は使用idea
を作成するmaven web
ことが多い、時間のプロジェクトを選択しmaven-archetype-webapp
使用して、プロジェクトを初期化するためのテンプレートをmaven-archetype-webapp
生成に含まれたプロジェクトwebapp
が含まれるディレクトリ、web
設定ファイルを
原型組成
カスタムを書き込むにはarchetype
、まず第一に、あなたは、組成物の原型を知っている必要があります。原型は、4つの部分から成ります。
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
四つの成分、2つのpom
ファイル、archtype-metadata
ファイルおよび5プロトタイプファイル[__rootArtifactId__-*
]、その__rootArtifactId__
テンプレートプロジェクトを生成するときに、代替の値に渡されますが- archtypeメタデータプロファイル
- 1.使用を定義する
archetype
パラメータを渡すテンプレートプロジェクトの必要性を生成します<!--需要输入的属性--> <requiredProperties> <requiredProperty key="groupId"> <!--默认的groupId--> <defaultValue>com.h2t.test</defaultValue> </requiredProperty> <requiredProperty key="artifactId"> <!--默认的artifactId--> <defaultValue>demo</defaultValue> </requiredProperty> <requiredProperty key="package"> <!--默认的包名和groupId一样--> <defaultValue>${groupId}</defaultValue> </requiredProperty> </requiredProperties> 复制代码
${}
変数が渡されたMavenのコマンドラインによって識別されます - 2.プロトタイプファイルを定義します
<module id="${rootArtifactId}-web" name="${rootArtifactId}-web" dir="__rootArtifactId__-web"> <fileSets> <fileSet filtered="true" encoding="UTF-8" packaged="true"> <directory>src/main/java</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="true"> <directory>src/test/java</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet encoding="UTF-8"> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet encoding="UTF-8"> <directory>src/test/resources</directory> <includes> <include>**/*.*</include> </includes> </fileSet> </fileSets> </module> 复制代码
module
プロパティの説明:id
:サブモジュールプロジェクトartifactId
dir
:サブモジュールのプロジェクトのソースファイルは、archetype-resources
内部に対応directory
name
:サブモジュールの名前。
- 1.使用を定義する
- プロトタイプのポンポンファイル
- 1. 5つのサブモジュールを定義します
<!--项目子模块--> <modules> <module>${rootArtifactId}-common</module> <module>${rootArtifactId}-dao</module> <module>${rootArtifactId}-service</module> <module>${rootArtifactId}-web</module> <module>${rootArtifactId}-model</module> </modules> 复制代码
- 統一された管理サブモジュール依存バージョン
所望のサブモジュールは、従属で定義されている<dependencyManagement> <!--modules--> <dependency> <groupId>${groupId}</groupId> <artifactId>${rootArtifactId}-common</artifactId> <version>${version}</version> </dependency> <dependency> <groupId>${groupId}</groupId> <artifactId>${rootArtifactId}-dao</artifactId> <version>${version}</version> </dependency> <dependency> <groupId>${groupId}</groupId> <artifactId>${rootArtifactId}-service</artifactId> <version>${version}</version> </dependency> <dependency> <groupId>${groupId}</groupId> <artifactId>${rootArtifactId}-model</artifactId> <version>${version}</version> </dependency> </dependencies> </dependencyManagement> 复制代码
pom
必要はない、サブモジュール依存<version>
タブ
- 1. 5つのサブモジュールを定義します
- プロトタイプWebモジュールのファイル記述 それは原型を使用して書かれている簡単なMavenプロジェクトは、テンプレートクラスのプロジェクトを生成しています
附属書:スーパーマンの原型コード
[スーパーマン原型]を使用してクイックスタートガイド
- 1.ダウンロード元
git clone https://github.com/TiantianUpup/superman.git 复制代码
- 2.スーパーマンエンジニアリング、ローカルリポジトリにインストールし、次のコマンドを実行します。
mvn clean install 复制代码
- 3.カスタムの原型プロジェクトの初期化を使用します
パラメータ説明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
:スーパーマンのグループIDを、値を変更する必要はありません
-DarchetypeArtifactId
。たartifactIdのスーパーマン、の値を変更する必要はありません - 4.ために使用する設定ファイルを移動し
archetype
、プロジェクトが生成されるときresource
、次のファイルが存在しないので、現在の設定ファイルがでweb
次のモジュールresource
パッケージの下に、プロジェクトの成功は、手動でファイルを移動する必要があります後に作成されたweb
次のモジュールのresource
フォルダ、およびresource
マークへのファイルResources Root
- 修正は、リソースフォルダ内の構成ファイルフォルダがあり
application.properties
、logback.properties
、logback-spring.xml
3つのプロファイルを-
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
あなたは、ログ保存したアドレスを変更する必要があり、<fileNamePattern>${LOG_ERROR_HOME}//%d.log</fileNamePattern> 复制代码
//
に修正/
-
- 生成部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
パックを。リソースフォルダがマークされている間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..*(..))") 复制代码
- 9プロジェクトを開始する
web
モジュールでRunner
起動するクラスのクラス、あなたはクラスの実行を開始することができ、デフォルトのポートは8081です
添付:スーパーマンの原型は、デモプロジェクトのアドレスを生成
限られた開発経験へようこそフォークと星は、[フォーカスを描く]、いくつかの場所が悪いと考えることができる、言及バグを歓迎しました。そしてarchetype
唯一の需要を言及することを歓迎し、いくつかの基本的な関数を定義しています。