1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Mavenについてメモ

Last updated at Posted at 2020-04-06

[背景]
なんとなく使えるレベルを脱却したいため
#❏Mavenとは
Apache Software Foundationで開発されているプロジェクト管理ツール
####基礎となる考え方
project object model

  • プロジェクトのライフサイクルをオブジェクトとみなして管理するモデル
  • これらの定義(オブジェクトの中身)をpom.xmlに書き出して管理している
  • 継承可能なのでsuper-pomの配下に差分として子pomを記述する方式が一般的
  • 親pomの内容は変数置換が可能(重複管理を防ぐ)
  • これらの値はproject.ファイルに記述することで一元管理が可能

#❏pom.xmlとは

  • プロジェクトの設定をxmlのタグとして記述している
  • プロジェクト≒オブジェクトとするモデル
  • ↑より、プロジェクトの属性・振る舞い・関係性・識別子を定義したファイルといえる

参考:https://www.itmedia.co.jp/im/articles/0211/12/news001.html

##中身
  <!-基本設定->
  	・modelVersion
  		pomのモデルバージョン:pom記述方法のバージョン値
  	・groupId
  		そのプロジェクトの製作者や会社・団体名
  	・artifactId
  		プロジェクトに割り当てる固有のID
  	・version
  		プログラム(プロジェクト)のバージョン
  	・packaging
  		パッケージングの種類
  	・name
  		プログラム名
  	・url
  		プロジェクトに関連するwebサイトのアドレス
  <!-ビルド設定->
  	・sourceDirectory
  		input要素の指定
  	・outputDirectory
  		output要素の指定
  	・plugins
  		プラグインの指定により拡張性の高いビルドを実施
  <!-ライブラリ関連->
  	・dependencies
  		依存ライブラリを定義する
  		ここに記述することで、mavnがセントラルリポジトリからjarを自動で取得してくれる
  		・dependency
  		  一つの依存ライブラリを定義
  			・groupId:依存ライブラリの作成者
  			・artifactId:識別子
  			・version:ライブラリのバージョン
  			・scope:ライブラリが使用される範囲を定義
  			・exclusions:プロジェクトが依存ライブラリが持つ依存関係を無視する指定
  <!-その他環境設定->
  	・pluginRepository
  		取得元のリポジトリを複数指定する場合に指定

参考:http://maven.apache.org/pom.html

#❏各種オペレーションについて

コマンド 内容
mvn install     作成した(若しくはmavenリポジトリにない)jarファイルをローカルリポジトリにインストール
→他依存モジュールが新たなjarを参照できるようにするために使う
mvn package     JAR.WAR等の成果物を生成する
mvn eclipce:eclipce Eclipse 用のファイル(.classpath,.project)を作成する。
→どちらもEclipseが内部で使用していると思われる
※binディレクトリはコンパイルによって作成されたクラスファイルが含まれる
mvn clean 依存関係を更新するために、初期化する処理

#❏その他
###setting.xml
・mavenが実行するデフォルト設定を記述するファイル
・ローカルリポジトリの位置等を指定

mirrorとは?
・ミラーリポジトリを指定するためのタグ
・mavenへのアクセスが集中しないようにmirrorリポジトリがいくつも存在
・それらを指定することで、mvn処理の高速化などが図れる

###各種プラグイン
maven-resources-plugin
・必要なタイミングでリソースファイルを特定のディレクトリにコピーする機能
・コンパイル後targetに配置された実行可能ファイルが同target/resourceを見るため必要
・参考:https://blog.chocolapod.net/momokan/entry/84

maven-compiler-plugin
・コンパイルのプラグイン(デフォルト)

maven-dependency-plugin
・指定されたディレクトリーは以下に依存関係(ライブラリ)をコピーして配置する。
・通常はtarget/libに集められる。(Eclipseの場合)
※targetファイルは実行可能ファイル群を集めておく(実行時にはsrcではなくこちらが使われる)
参考:https://qiita.com/tontan9616/items/d8427504e82c68be3b03

[その他]
課題:pomのバージョン管理をどのようにやっていくのか?

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?