Mavenの設計思想は、設定より規約(構成前大会まで)で、この記事では、あなたは以下の5つの技術的な詳細を学びます、これらの要素は、私は最近のインタビューで候補者を尋ねます。
差達人きれいなパッケージには、インストール、展開します
Mavenのライフサイクル
Mavenの一般的なプラグイン
Gitlabランナー結合MavenはCI / CDユニットテストを実行しました
Mavenは除外を頼ります
まず、差分達人きれいなパッケージには、インストール、展開します
千個の言葉の価値が腕時計、周期表の人生
メニュー
MVNインストールを使用して、新しいコンテンツ変更が反映されない場合は、クリーンを有効にするには、インストールMVNを使用してください
説明をプラグ:
Mavenの戦争 - プラグインプロジェクトは、戦争にパッケージ化されます、のmaven-jarファイル・プラグインプロジェクトをjarファイルにパッケージ化されます
Mavenはインストール・プラグインを築くだろう戦争パッケージをローカルに開発環境のMavenリポジトリの。
二、Mavenのライフサイクル
Mavenのライフサイクルは全てれるビルドプロセスの抽象化と統一されたが、プロジェクトに含まクリーンアップするために、初期設定、コンパイル、テスト、パッケージ、統合テスト、検証、展開を、サイトが生成など、ほぼすべてのプロセスのを(コンパイルに減少させることができる- > [テスト- >包装- >展開)。ほとんどすべての建設プロジェクトは、ライフサイクルにマッピングすることができます。
Mavenのは、独立したライフサイクルの3セットがあり、あるクリーン(クリーンアッププロジェクト)、デフォルト(建築プロジェクト)とサイト(プロジェクトサイトを確立する)、各ユーザーが唯一のライフサイクルの各段階をきれいに呼び出すことができます。
(A)クリーンライフサイクル
此周期的目的是清理项目,它包含三个阶段:
(1)pre-clean:执行一些需要在clean之前完成的工作
(2)clean:移除所有上一次构建生成的文件
(3)post-clean:执行一些需要在clean之后立刻完成的工作
(二)default生命周期
最核心的生命周期,构建的核心部分,编译,测试,打包,部署等等。它包含的阶段如下:
初始化、编译、测试、打包、集成测试、验证、部署
1) validate 验证项目是否正确和所有需要的相关资源是否可用
2) initialize 初始化构建
3) generate-sources
4) process-sources 处理源代码
5) generate-resources
6) process-resources 处理项目主资源文件。对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。
7) compile 编译项目的主源代码
8) process-classes
9) generate-test-sources
10) process-test-sources 处理项目测试资源文件
11)generate-test-resources
12) process-test-resources 处理测试的资源文件
13)test-compile 编译项目的测试代码
14)process-test-classes
15) test 使用单元测试框架运行测试,测试代码不会被打包或部署
16)prepare-package 做好打包的准备
17)package 接受编译好的代码,打包成可发布的格式
18) pre-integration-test
19) integration-test
20) postintegration-test
21) verify
22) install 将包安装到Maven本地仓库,供本地其他Maven项目使用
23)deploy 将最终的包复制到远程仓库,供其他开发人员和Maven项目使用
(三)site生命周期
site生命周期的目的是建立和发布项目站点,Maven能够基于POM所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。该生命周期包含如下阶段:
1)pre-site 执行一些在生成项目站点之前需要完成的工作
2)site 生成项目站点文档
3)post-site 执行一些在生成项目站点之后需要完成的工作
4)site-deploy 将生成的项目站点发布到服务器上
三、Maven常用插件
clean插件maven-clean-plugin
resources插件maven-resources-plugin
compile插件maven-compiler-plugin
单元测试插件maven-surefire-plugin
打包插件maven-jar-plugin、maven-war-plugin、maven-assembly-plugin、maven-shade-plugin
发布插件maven-install-plugin
四、maven结合Gitlab Runner执行CI/CD单元测试
Gitlab 除了基本的版本管理功能之外,还有持续集成能力,在项目根目录中编写一段 .gitlab-ci.yml,就能让 Gitlab 按照其中的指示完成持续集成的工作。
Gitlab CI/CD 是 Gitlab 的组件,它利用 Gitlab Runner 来执行具体的构建任务。
具体创建Maven 的 Runner的方式可以参照这篇文章:使用 Maven 运行单元测试
ます。https://www.jianshu.com/p/8baad23e7307で再現