Recommended
PDF
Groovy base gradle_20130309
PDF
Gws 20130315 gradle_handson
PDF
Jjug 20140430 gradle_basic
PDF
PPTX
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
PDF
PDF
PDF
PDF
Head toward Java 13 and Java 14 #jjug
PDF
PDF
Spring in-summer-gradle-hands on-withanswers
PDF
PDF
New features of Groovy 2.0 and 2.1
PDF
PDF
PDF
JavaFX & GlassFish 勉強会 Project Visage
PDF
PDF
PDF
Django最速デバッグ指南 PyConAPAC 2013
PPT
How to manage Cakephp @CakePHP_Fukuoka_2
KEY
PDF
PDF
PPTX
PDF
PDF
PDF
PPT
PDF
More Related Content
PDF
Groovy base gradle_20130309
PDF
Gws 20130315 gradle_handson
PDF
Jjug 20140430 gradle_basic
PDF
PPTX
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
PDF
PDF
What's hot
PDF
PDF
Head toward Java 13 and Java 14 #jjug
PDF
PDF
Spring in-summer-gradle-hands on-withanswers
PDF
PDF
New features of Groovy 2.0 and 2.1
PDF
PDF
PDF
JavaFX & GlassFish 勉強会 Project Visage
PDF
PDF
PDF
Django最速デバッグ指南 PyConAPAC 2013
PPT
How to manage Cakephp @CakePHP_Fukuoka_2
KEY
PDF
PDF
PPTX
PDF
PDF
PDF
Similar to Maven2 プラグイン入門
PPT
PDF
PPT
ODP
PDF
PDF
Agileツール適合化分科会(構成管理・ビルドツール)
PDF
PPTX
Multibranch Pipeline with Docker 入門編
PDF
PDF
PDF
企業におけるSpring@日本springユーザー会20090624
PDF
Should we write such like plugin or not?
PDF
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
PDF
PPTX
PPTX
PPT
PDF
Azure DevOps Online Vol.3 - Inside Azure Pipelines
PDF
KEY
Behat+Symfony2ではじめるBDD超入門
Maven2 プラグイン入門 1. Maven2 プラグイン入門 第一回チキチキ 『 ant から maven2 へ 』 〜血があつい鉄道ならばこまるよね〜 船戸 隆 [email_address] 2. 3. 4. 5. 6. 7. アーキテクチャ概要 Java Classworlds Plexus Maven-core MOJO M aven plain O ld J ava O bject maven-site-plugin maven-eclipse-plugin maven-clean-plugin 8. 主要な使用ライブラリ Classworlds シンプルなクラスローディングライブラリ Maven コアとプラグインのクラスローダを切り分ける Plexus 軽量 DI コンテナ Maven 2の本体そのもの コンポーネントのライフサイクルのサポート ネストしたコンテナ コンポーネント単位のクラスローダーの分離 http://classworlds.codehaus.org/ http://plexus.codehaus.org/ 9. Mojo Mojo Maven プラグインインターフェース M aven plain O ld J ava O bject org.apache.maven.plugin.Mojo インターフェース 定義されてるのは setLog(Log log) 、 getLog() 、 void execute() だけ! org.apache.maven.plugin.AbstractMojo 継承して Plugin を作る void execute() を実装するだけ! 10. 11. BuildLifeCycle とは BuildLifeCycle Maven ではコアコンセプトとして BuildLifeCycle という考えに基づいている LifeCycle としてビルド、配布、成果物作成、テストなどのプロセスを明確に分離して定義している その分離した単位を Phase という Phase は Plugin のまとまり デフォルトの Phase は ${M2_HOME}/lib/maven-core-2.0.X-uber.jar の META - INF/plexus/components.xml に定義 12. BuildLifeCycle 定義済み LifeCycle 大きく分けて3つ Default プロジェクトのライフサイクル Clean プロジェクトのクリーン 生成物のお掃除 Site プロジェクトのサイト作成 ドキュメント、レポート作成 派生成果物 <configuration> <lifecycles> <lifecycle> <id>default</id> <phases> <phase>validate</phase> <phase>initialize</phase> <phase>generate-sources</phase> <phase>process-sources</phase> <phase>generate-resources</phase> <phase>process-resources</phase> <phase>compile</phase> <phase>process-classes</phase> <phase>generate-test-sources</phase> <phase>process-test-sources</phase> <phase>generate-test-resources</phase> <phase>process-test-resources</phase> <phase>test-compile</phase> <phase>process-test-classes</phase> <phase>test</phase> <phase>package</phase> <phase>pre-integration-test</phase> <phase>integration-test</phase> <phase>post-integration-test</phase> <phase>verify</phase> <phase>install</phase> <phase>deploy</phase> </phases> <configuration> 13. BuildLifeCycle 定義済み Phase – Default Via:Maven 2.0.8 テストコードコンパイル後処理 process-test-classes 成果物の配備 deploy 成果物のインストール install パッケージング後チェック verify インテグレーションテスト後処理 post-integration-test インテグレーションテスト integration-test インテグレーションテスト準備 pre-integration-test 成果物のパッケージング package テスト実行 test テストコードコンパイル test-compile 概略 Phase リソース成形 process-resources リソース生成 generate-resources テストリソース成形 process-test-resources テストリソース生成 generate-test-resources テストコード成形 process-test-sources テストコード生成 generate-test-sources コンパイル後処理 process-classes コンパイル compile ソースコードの成形 process-sources ソースコード生成 generate-sources ビルドプロセスの準備 initialize POM の精査 validate 概略 Phase 14. BuildLifeCycle 定義済み Phase – Clean clean フェーズの後に実行されるフェーズ 生成物を削除するフェーズ clean フェーズの前に実行されるフェーズ 説明 clean Mojo post-clean maven-clean-plugin clean pre-clean Plugin Phase 15. BuildLifeCycle 定義済み Phase – Site site フェーズで生成されたものをデプロイする site フェーズの後に実行されるフェーズ JavaDoc 、レポートなどを生成するフェーズ site フェーズの前に実行されるフェーズ 説明 deploy site Mojo maven-site-plugin site-deploy post-site maven-site-plugin site pre-site Plugin Phase 16. 17. ファーストステップ ArchetypePlugin でプロジェクトを作る Archetype に maven-archetype-mojo を指定 MavenPlugin プロジェクトの雛形ができる mvn archetype:create -DpackageName= 任意のパッケージ -DgroupId= 任意のグループ ID -DartifactId= maven -sample- plugin -DarchetypeArtifactId= maven-archetype-mojo ・すでに実装コードが用意された状態 ・ artifactId の maven-#####-plugin が重要 ・ <packaging>maven-plugin</packaging> 18. Goal、Phase指定 Goal 、 Phase の指定 Javadoc で記述 上記の例だと、ゴールは sample で compile のフェーズで実行される /** * @goal sample * @phase compile */ public class MyMojo extends AbstractMojo { 19. パラメータの受け渡し Plugin に外部からパラメータを渡す JavaDoc で記述( Doclet と同じ) 渡す方法は3つ 起動引数としてパラメータを渡す -D つきでパラメータを渡す pom.xml で定義 <configuration> で定義 settings.xml で定義 プロファイルのプロパティに定義 同時に定義された場合 pom.xml > settings.xml > 起動引数 の順で使われる 20. パラメータの設定 実際のコード例 フィールドに @parameter を記述 例では param という名前で定義される POM に定義されてるもののみ設定される 起動時パラメータを受け取るには explession を使う /** * @parameter */ private String param; 21. 22. 登録の仕方 mvn install するだけ ローカルのリポジトリにインストールされる ${user.home}/.m2/repository packaging されるときに plugin.xml が作成される Plugin のパラメータや goal が定義されたもの mvn install 23. 起動の仕方 mvn {groupID}:{artifactID}:{version}:{goal} このうち groupID と version は省略できる POM に plugin が定義されていれば groupID は省略可 Version は最新のものが使われる groupID が org.apache.maven.plugin は暗黙のうちに省略可 artifactID が maven-XXXXX-plugin であれば maven と plugin が省略できる 。 mvn sample:sample mvn jp.canetrash.maven.plugin:maven-sample-plugin:1.0:sample フル指定 省略形 24. 25. 26.