詳細なメカニズムにプラグインMavenのライフサイクルと:Mavenは3チュートリアル

序文

今日は、この学習のMavenは、後にも、例えばプロファイル設定プロジェクトの環境を追加し、同社は現在、実際の使用に基づいて、原型のテンプレートを使用して、タイトルに記載された内容に限定されるものではなく、物品、の終わること。

背後にある彼らの学習を一般記録するために大規模なマインドマップを要約します。

Mavenのライフサイクル導入

いくつかのコマンドの口コミを投稿します:

  • きれいなパッケージをMVN:打包
  • クリーンインストールMVN:ローカルインストール
  • mvenクリーンデプロイ:リモートリポジトリへのデプロイ

3完全に独立したライフサイクル、クリーン、デフォルトのサイトを持っているMVNし、
完了するために、それぞれが複数のライフサイクル・フェーズが含まれます、順番に各フェーズの目標は、様々なプラグイン。

位相は、タスク単位、一般的なタスクのライフサイクルは、タスクは、サブサブタスクのうち総位相であることが理解されるであろうが、これらのサブタスクは、それが同時にライフサイクルの複数の中に含めることができる正規化され、ライフサイクルは、複数を含みます位相、phsseの実行順序は、目標位相、複数の少なくとも一つに結合することができます。

ミッション目標は、任意の相に結合することができる最小単位である1つ以上の相が目標を有するフェーズが目標に結合相で行われる場合、目標は、順番に実行されることによって結ばれます所定の時間が順次行われます。

Mavenのライフサイクルと位相

相クリーンライフサイクルの構成は次のとおりです。

  • 前洗浄
  • クリーン
  • ポストクリーン

相デフォルトのライフサイクルの構成は次のとおりです。

  • 検証:一部の構成情報が正確であるこのプロジェクトをチェック
  • そのようないくつかのプロパティを設定すると、初期ビルド状況をまたはいくつかのディレクトリを作成します。初期化
  • 生成-源:自動的にソースコードが生成し、一緒にコンパイルされ、プロジェクトコードに含まれています
  • プロセスのソース:ソースコードは、このようないくつかの代替のプレースホルダを行うよう
  • 設定ファイルという性質、私はそれらの事を言ったとき、それは主にXMLの様々な対処するため、乾燥している、リソースファイルを生成し、プレースホルダ内のいくつかの設定ファイルを置き換えます:-リソースを生成
  • プロセス・リソース:ターゲットディレクトリにコピーされたリソースファイル、容易にするためのバックパック
  • コンパイル:プロジェクトのソースコードをコンパイル
  • プロセス・クラス:処理されたコンパイルされたコードファイルは、そのようなJavaクラスのバイトコードを高めるために
  • テスト・ソースを生成する:生成自動テストコード
  • プロセステスト源:テストコードの処理、例えばフィルタリングプレースホルダとして
  • テスト・リソースを生成:テストに使用するリソースファイルを生成します
  • プロセス・テストのリソース:ターゲット・ディレクトリへのリソースファイルのコピーテスト
  • テストコンパイル:テスト・コードをコンパイル
  • プロセステストクラス:テストがコンパイルされたコードを処理し、そのようなバイトコードエンハンスメントとして
  • テスト:テストユニットテストフレームワークの実行
  • 準備パッケージを:準備作業を包装前に、そのようなパッケージのバージョン番号を処理するように
  • パッケージ:このようなJARパッケージとしてパッケージ化コード、
  • 事前統合テスト:このような環境の必要性の確立として統合テスト前の準備作業、
  • 統合テスト:パッケージは、統合テストを実行するために、環境に展開されます
  • 統合後のテスト:このようなテスト環境をクリーンアップとして、統合テストの後にいくつかの操作を実行
  • 検証:クリアランスの品質を保証するために、いくつかのチェックをパッケージ化します
  • インストール:開発者が独自のローカルで使用できるように、ローカルリポジトリにパッケージをインストール
  • 展開:リモートリポジトリにアップロードされたパッケージを、そのような企業では、他の開発者にも使用することができます

サイトのライフサイクル・フェーズ

  • 前のサイト
  • サイト
  • ポストサイト
  • サイトデプロイ

###デフォルトの位相とプラグイン

プラグインのゴールで完了することが、我々は直接MVNきれいなパッケージを実行すると、各フェーズがされ、アップバインドされている相とプラグインとの間の関係は何ですか?

:実際には、デフォルトでは、次のような、相へのプラグインのゴール数をバインドするためのMaven

同様のリソース:このプラグインのリソース目標のリソースであるこの形式のリソース(資源機能、リソース・ファイルを処理するための責任があります)

ライフサイクルでのmavenコマンドライン

例えば、我々はMVNきれいなパッケージのライフサイクルは何である実行しましたか?

きれいな位相クリーンはのライフサイクルを参照きれいである
パッケージパッケージ相デフォルトのライフサイクルを指し、

この時点で、それはすべての相の清潔できれいなフェーズの前にきれいなライフサイクル・フェーズを実行します(プリクリーン、クリーン)
すべての相と同僚はのパッケージフェーズの前にライフサイクルの中で、デフォルトのパッケージ・フェーズを実行します

それはきれいなゴールきれいなプラグインを実行するために行きますので、きれいなプラグインのきれいな目標は、クリーン:結合きれいなデフォルトがきれいです。

次のように、図の特定の実装プロセスです。

04_mavenライフサイクル原則.PNG

戦闘で使用されるのMavenプラグイン

需要:項目MyBatisの自動コード生成を有し、特定のMavenのコマンドを実行することが望ましいが自動的に指定されたテーブルの設定に対応するコードを生成することができます。

プラグインmybatis.generatorを追加し、[構成の目標を生成します

<build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <configurationFile>mybatis-generator-config.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.2</version>
                    </dependency>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>${mysql-connector.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>com.wangmeng.game</groupId>
                        <artifactId>game-wangmeng-common</artifactId>
                        <version>1.0-SNAPSHOT</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

SQL情報MyBatisの発電-config.xml構成を見てみましょう。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC
        "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
    <context id="context" targetRuntime="MyBatis3">
        <plugin type="org.mybatis.plugin.PaginationPlugin">
        </plugin>

        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!-- 数据库的相关配置 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://ip:3306/db?useUnicode=true" userId="root"
                        password=""/>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- 实体类生成的位置 -->
        <javaModelGenerator targetPackage="com.wangmeng.game.league.entity"
                            targetProject="game-wangmeng-entity/src/main/java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- *Mapper.xml 文件的位置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="game-wangmeng-dao/src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!-- Mapper 接口文件的位置 -->
        <javaClientGenerator targetPackage="com.wangmeng.game.league.dao" 
                             targetProject="game-wangmeng-dao/src/main/java"
                             type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- 相关表的配置 -->
        <table tableName="t_table" domainObjectName="TableEntity" enableCountByExample="true"
               enableDeleteByExample="true"
               enableSelectByExample="true"
               enableUpdateByExample="true">
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
        </table>

    </context>
</generatorConfiguration>

私たちはアイデアのMavenプラグインで構成されていることを確認し、その後に移動をクリックすることができます:

2E54BFFE-005B-4464-9A38-2CFD74176C8D.png

プラグイン:MyBatisの発電機の
目標:生成

異なる環境間を区別するためにプロファイルを使用しました

    <profiles>
    <profile>
        <!--local env-->
        <id>dev</id>
        <properties>
            <profiles.active>dev</profiles.active>
        </properties>
        <activation>                  
           <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <!--test env-->
        <id>test</id>
        <properties>
            <profiles.active>test</profiles.active>
        </properties>
    </profile>
    <profile>
        <!--UT env-->
        <id>ut</id>
        <properties>
            <profiles.active>ut</profiles.active>
        </properties>
    </profile>
</profiles>

ここでは、デフォルトのdevの環境がを通じて、ある<activation>設定。

Mavenとgitのバージョンコントロールとの関係

マップストリーム:

05_mavenとgitの.PNGとの関係

Mavenの高次:原型テンプレート

実際にMavenのプロジェクトテンプレートをartchetype

私たちは、今、私たちは、新しいプロジェクトを作成するときに、再新しいことができない新しいMavenプロジェクトを、例えば、あるものを取り、実際に会社が長い私たちのために生成された足場のプロジェクトを提供している、唯一のいくつかのMavenコマンドを実行する必要があります新しいプロジェクトを生成するための良い、ここではプロジェクトの構造は良い定義です。

このことの利点の一つは、私たちは、プロジェクトの作成を支援するために、第二、会社の規範の実装と管理を容易にします。

ここで証明するために、直接テンプレートartchetypeに会社を取る(キー情報は、モザイクあり)

1、あなたはMavenの原型クイックスタートMavenの原型Webアプリケーションプロジェクトを生成するように選択することができますか

211.png

そして、MVN展開パッケージは、PWのMaven原型ジャーにアップロードすることができます

カスタムのMaven原型を使用して2、

直接バットをカプセル化する実行可能ファイルである同社は、実装があります

CreateProject-latest.batディレクトリにcmdは、コマンドの実行CreateProject-latest.batプロジェクト名のパッケージ名をエンジニアリングXX-春-クラウドAPI-足場の最新バージョンを使用して生成することができ、このようなCreateProject-latest.batショップ・レポートのレポートとして、 shop-をレポート、パッケージ名com.xx.report。お気に入りのアドレスをコピーし、日食やアイデアにインポートするプロジェクトをすることができます。gitignore手動で追加してください。親プロジェクトは、リリースバージョンの最新バージョンである変更してください。

CreateProject-latest.bat

echo on & color 0A
setlocal enabledelayedexpansion

if "%1"=="" goto BLANK
if "%2"=="" goto BLANK

set ProjectName=%1
set packageName=%2
set archetypeVersion=LATEST

mvn dependency:copy -Dartifact=com.xx:xx-archetype-springcloud-archetype:%archetypeVersion% -Dmdep.stripVerison=true & echo Y | mvn archetype:generate -DarchetypeCatalog=local -DarchetypeGroupId=com.tuhu -DarchetypeArtifactId=xx-archetype-springcloud-archetype -DarchetypeVersion=%archetypeVersion% -DgroupId=com.tuhu -DartifactId=%ProjectName% -Dversion=0.0.1-SNAPSHOT -Dpackage=com.xx.%packageName% & rd/s/q ${project.basedir} & rd/s/q %ProjectName%\.idea & ren %ProjectName% xx-spring-cloud-api-%ProjectName%

興味のパートナーは、個々の国民の少数心配することができる:一つの枝にはロマンチックな花を数えます

22.jpg

おすすめ

転載: www.cnblogs.com/wang-meng/p/11902415.html