LoginSignup
2
0

More than 5 years have passed since last update.

Mavenをやってみる(プロジェクト作成からライブラリ管理まで)

Last updated at Posted at 2019-02-09

はじめに

Mavenというやつをやってみようと思います。(よーわからんw

Maven公式: https://maven.apache.org/

ビルドツール

  • ant
    • ビルドを自動化するツール
      • コンパイル、テスト、パッケージング、デプロイを自動化する
  • maven
    • antよりも高性能
    • ビルドの自動化にプラスして、ライブラリの管理、テスト結果の共有などができる
    • xmlファイル(pom.xml)による管理
  • gradle
    • mavenよりも高性能
    • ビルドの自動化、ライブラリ管理にプラスして、スクリプトの実行もできる
    • groovy言語で書かれたgradleファイル(build.gradle)による管理

Mavenのインストール

  • Apacheプロジェクトのサイトからダウンロード
    • http://maven.apache.org
    • 環境変数の設定
  • brew install maven
    • brewによるインストール
  • mvn -v
    • ちゃんとインストールできたか確認
    • バージョンが表示される

Mavenの仕組み

  • アーティファクト
    • プロジェクトのビルドによって生成される成果物のこと
    • jarファイルやwarファイルのこと
    • 必須情報
      • グループID
        • 生成した組織を示す(ドメイン)
        • プロジェクトのパッケージ名を設定する
      • アーティファクトID
        • グループ内で一意なもの
        • プロジェクト名を設定する
      • バージョン
  • プロジェクトレイアウト
    • プロジェクトルート直下
      • srcファイル
      • pom.xml
    • mvnコマンドで自動生成するほうがよい
  • POM
    • Project Object Model
    • プロジェクトのライフサイクル全体を管理する
    • pom.xmlにより定義する
      • プロジェクトに関する情報を定義しておくXMLファイル

Mavenプロジェクトの作成

  • mvn archetype:generate
    • Mavenプロジェクトを生成する
    • archetypeプラグインのgenerateゴールを実行するという意味
    • 設定すべき項目
      • groupId
        • プロジェクトのパッケージ名
      • articleId
        • プロジェクト名
  • mvn archetype:generate -DgroupId=(パッケージ名) -DartifactId=(プロジェクト名) -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

ライブラリの管理

  • Mavenにはライブラリの依存性を管理する機能がある
  • 自動的にライブラリをダウンロードして、必要に応じてクラスパスを設定する
  • リポジトリから取得
    • http://search.maven.org/
    • リモートリポジトリから取ってきたライブラリはローカルリポジトリに追加される
      • ~/.m2/repository以下に追加される
  • pom.xmlに以下のように設定する
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
  </dependency>
</dependencies>

おわりに

Mavenってなんなの?というところから、Mavenを使ってライブラリの依存を管理するところまでやりました。
参考までに。

ひろたつ

2
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
2
0