モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

目次目次を開く/閉じる

Maven 3 の基本的な使い方

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2015/03/21
最終更新最終更新
2019/07/26
記事区分記事区分
一般公開

目次

    3Dモデリングとゲームエンジンに興味があります。Blenderも活用!

    概要および事前準備

    Apache Maven は Java 用のプロジェクト管理ツールです。テスト、ビルド、javadoc ドキュメント生成などを汎用的な手順で実行できるようになります。Apache Ant の後継です。バージョン 3 について簡単に使用方法をまとめます。事前にこちらからバイナリをダウンロードおよび解凍しておいてください。解凍結果の bin ディレクトリに PATH を通すことで mvn コマンドが使用できるようになります。

    $ mvn --version
    Apache Maven 3.3.1
    Maven home: c:\Users\username\bin\apache-maven-3.3.1\bin\..
    ...
    

    なお JAVA SDK が動作のために必要です。Oracle のページから JDK をダウンロードおよびインストールして PATH を通しておく必要があります。また、社内ネットワークなどでプロキシ設定が必要な場合は Maven home 内の apache-maven-3.3.1/conf/settings.xml という設定ファイルを編集します。

    参考ページ

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          http://maven.apache.org/xsd/settings-1.0.0.xsd">
      ...
      <proxies>
        <proxy>
          <id>myproxy</id>
          <active>true</active>
          <protocol>http</protocol>
          <host>proxy.somewhere.com</host>
          <port>8080</port>
          <username>proxyuser</username>
          <password>somepassword</password>
          <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>
        </proxy>
      </proxies>
      ...
    </settings>
    
    • id: プロキシを複数設定する際にそれらを識別するための ID です。通常は一つですので変更不要です
    • active: この proxy 設定を有効にするためには true のままにしておきます
    • protocol, host, port: ここに必要な社内ネットワーク情報を記載してください
    • username, password: プロキシに認証がかかっている場合はここに記載します。認証がない場合は削除して空文字列にしてください
    • nonProxyHosts: プロキシを利用したくないホスト名のリストを記載します。通常は変更不要です

    プロジェクトテンプレートの生成

    以下のコマンドでテンプレートを生成します。

    $ mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app \
    -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
    • artifact: 通常 JAR のことを指します
    • group: artifact の集合体です
    • maven-archetype-quickstart: 通常の JAVA アプリケーション (JAR) 開発用のテンプレートを出力

    その際、必要に応じて Central Repository からパッケージが自動でダウンロードされて $HOME/.m2 に保存されます。Central Repository は yum における base レポジトリのようなものです。artifact が管理されています。後述の POM 内の Dependencies に記載する内容が掲載されていたりします。

    生成結果ディレクトリ

    my-app/
    ├── pom.xml
    └── src
        ├── main
        │   └── java
        │       └── com
        │           └── mycompany
        │               └── app
        │                   └── App.java
        └── test
            └── java
                └── com
                    └── mycompany
                        └── app
                            └── AppTest.java
    

    POM ファイルの編集

    Project Object Model を意味する POM はプロジェクトの設定ファイルです。編集する必要がある場合はこちらのリファレンスをご参照ください。

    例えば、プロジェクトに含めるリソースファイルの既定の場所 ${basedir}/src/main/resources などを変更するための設定については以下のセクションに記載があります。

    JAR ファイルの生成

    $ mvn package
    $ java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
    Hello World!
    

    その他便利なサブコマンド

    ビルド結果を削除

    $ mvn clean
    

    プロジェクトに欠陥がないことを検証

    $ mvn validate
    

    javac 相当の処理だけを実行 (コンパイル)

    $ mvn compile
    

    テストのみ実行

    $ mvn test
    

    プロジェクトの javadoc ドキュメントを生成

    $ mvn site
    

    JDK バージョンを指定する

    こちらのページに記載されているとおり、プロジェクトで使用する Java のバージョンを maven-compiler-plugin によって pom.xml で指定すれば、ビルド時に必要なバージョンを Maven に伝えることができます。Maven が指定された適切な Java でビルドするためには JAVA_HOME が適切に指定されている必要があります。maven-compiler-plugin に依らず、JAVA_HOME で指定された JDK を用いてビルドされます。一時的に変更することで、複数のバージョンの JDK を同じ PC でプロジェクト毎に使い分けることができます。

    Windows の例

    set JAVA_HOME="C:\Program Files\Java\jdk1.8.0_131"
    echo %JAVA_HOME%
    

    Linux の例

    export JAVA_HOME=/path/to/java_home
    echo $JAVA_HOME
    

    JAR コマンドで展開して MANIFEST.MF の内容を調べることで、指定した JDK でビルドされたことが確認できます。

    jar xvf sample.jar
    cat META-INF/MANIFEST.MF
    
    Likeボタン(off)0
    詳細設定を開く/閉じる
    アカウント プロフィール画像

    3Dモデリングとゲームエンジンに興味があります。Blenderも活用!

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    >>さらに詳しくステッカーを贈る
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      ログインする

      関連記事

      • Spring Security フォームログインのサンプルコード
        Spring フレームワークによる Web アプリケーション開発で、ログイン処理を実装する際は Spring Security が便利です。ここでは特に Spring Boot で Web アプリケーションを開発する場合を対象とし、フォームによる ID/Password ログインを行うためのサンプルコードをまとめます。 公式ドキュメント [Spring Security チュートリアル](http...
        えびちゃんえびちゃん11/4/2019に更新
        いいねアイコン画像0
      • Java配列の宣言方法 (C/C++との違い)
        Javaの配列 Javaの配列宣言方法はC/C++と似ているようで若干異なる。 初期化しない場合 C/C++の int array[10]; はJavaでは int array[] = new int[10]; となる。同様にC/C++の int array[3][3]; はJavaでは int array[][] = new int[3][3]; となる。 初期化
        てんとうむしてんとうむし4/13/2018に更新
        いいねアイコン画像0
      • PlantUML による UML 図の描き方
        サムネイル画像-c788fffde5
        PlantUML はテキスト形式で表現されたシーケンス図やクラス図といった UML (Unified Modeling Language) 図の情報から画像を生成するためのツールです。簡単な使い方をまとめます。 インストール方法の選択 Atom や Eclipse のプラグインをインストールしてエディタから利用する方法、JAR をダウンロードして Java コマンドで実行する方法、Redmine ...
        kentakenta12/21/2019に更新
        いいねアイコン画像0
      • Akka HTTP サンプルコード (Scala)
        サムネイル画像-a98142497c
        Akka アクターを用いて実装された汎用 HTTP フレームワークです。Spray の後継です。コアモジュールである akka-http-core は 2016/2/17 に experimental が外れました。akka-http などのいくつかのサブモジュールは 2016/3/1 現在 experimental のままですが、基本的な
        雄太雄太9/7/2021に更新
        いいねアイコン画像0
      • Kestrel の使用例
        Kestrel は Message Queue (MQ) の実装のひとつです。一般に MQ はアプリケーション間やプロセス間、スレッド間で非同期に通信するために用いられます。メッセージの送信側は MQ に書き込めば受信側の応答を待たずに次の処理に非同期に進むことができます。Kestrel はわずか 2500 行程の Scala で実装されており JVM で動作します。MQ 自体はメモリ上に存在する...
        したくんしたくん9/12/2017に更新
        いいねアイコン画像0