Help us understand the problem. What is going on with this article?

WindowsにMaven(Proxy経由/NEXUS経由)をインストールする方法

More than 3 years have passed since last update.

1. はじめに

Mavenはインターネットに公開されているMavenのCetralリポジトリ等にアクセスし、必要なライブラリを取得します。そのため、会社のネットワークなどインターネットに直接アクセスできない環境では、ProxyかNEXUSを経由させる必要があります。
今回はWindowsにMavenをインストールする方法と併せて、ProxyやNEXUSを経由させる方法について説明します。
なお、よく利用するMavenコマンドについては「TERASOLUNA5.xで覚えるべきMavenコマンド」を参照ください。

1.1. 検証環境

  • Java 1.8.0_131
  • Apache Maven 3.3.9
  • Nexus Repository Manager OSS 2.x (2.14.4-03)

1.2. 作業の流れ

項番 内容 備考
1 Mavenのダウンロードとインストール MavenのインストールはZipファイルをダウンロードし、Zipファイルを展開するだけです。
2 環境変数の設定 Mavenコマンドを有効にするため環境変数を設定します。
3 setting.xmlの配置 Mavenの設定ファイルであるsetting.xmlを作成して配置します。
インターネットのCentralリポジトリにアクセスする方法がいくつかあり、それぞれ設定方法が異なります。
1.Proxyを経由する方法
2.NEXUSを経由する方法
4 動作確認 設定が正しく行われていることを確認するためTERASOLUNA5.xのプロジェクトを作成してみます。

2. Mavenのダウンロードとインストール

Mavenの公式サイト https://maven.apache.org/ からZipファイルをダウンロードします。
インストールはZipファイルを展開するだけで完了です。
今回はC:\toolsディレクトリにインストール(展開)することとします。

3. 環境変数の設定

各自の環境に合わせて設定してください。

項番 キー
1 JAVA_HOME C:\Program Files\Java\jdk1.8.0_131
2 MAVEN_HOME C:\tools\apache-maven-3.3.9
3 path %JAVA_HOME%\bin と %MAVEN_HOME%\bin を追加

4. setting.xmlの配置

4.1. C:\Users\ユーザ名\.m2ディレクトリの作成

Mavenの設定ファイル(setting.xml)はユーザ単位で作成します。
格納先はC:\Users\ユーザ名\.m2ディレクトリになります。

残念ながらWindowsのエクスプローラ(GUI)では.で始まるディレクトリを作成することができません。コマンドプロンプトでmkdir .m2で作成してください。

4.2. ローカルリポジトリのディレクトリを変更する場合のsetting.xml

Mavenの設定として、ローカルリポジトリのディレクトリをデフォルトのユーザのホームディレクトリ配下から変更することをお勧めします。

必要なライブラリが全部ローカルリポジトリに反映された後、Zipファイル等でアーカイブし、プロジェクトメンバに配布することでローカルリポジトリの作成時間を短くすることができます。

項番 ローカルリポジトリのディレクトリ 内容
1 C:\Users\ユーザ名\.m2\repository デフォルト
2 C:/tools/repository 変更例です
各自の環境に合わせてください
setting.xml(ローカルリポジトリのディレクトリを変更する場合)
<settings>
  <localRepository>C:/tools/repository</localRepository>
</settings>

4.3. proxy経由のsetting.xml

proxyを経由してインターネットにアクセスするため、proxyの接続情報(IPアドレス、ポート番号等)をsetting.xmlに設定します。

項番 タグ 内容
1 <id> mavenProxy ・proxyの接続情報を識別するためのID
・任意の値で構わない
2 <host> yourproxy.example.com ・proxyサーバのホスト名またはIPアドレス
3 <port> 8080 ・proxyサーバのポート番号
4 <username> proxyUserId ・認証情報のユーザID
・ユーザ認証が必要な場合に設定
・不要な場合はタグ自体記述不要
5 <password> proxyUserPassword ・認証情報のパスワード
・ユーザ認証が必要な場合に設定
・不要な場合はタグ自体記述不要
6 <nonProxyHosts> localhost|127.0.0.1|10.*
(正しい区切り文字は半角の|)
・proxyを経由させないホストやIPアドレス
setting.xml(proxy経由)
<settings>
  <localRepository>C:/tools/repository</localRepository>
  <proxies>
    <proxy>
      <id>mavenProxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>yourproxy.example.com</host>
      <port>8080</port>
      <username>proxyUserId</username>
      <password>proxyUserPassword</password>
      <nonProxyHosts>localhost|127.0.0.1|10.*</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

4.4. NEXUS経由のsetting.xml

NEXUSを経由してインターネットにアクセスするため、NEXUSサーバのURLをsetting.xmlに設定します。
なお、NEXUSサーバの構築方法については別の機会に記事にしたいと思います。

項番 タグ 内容
1 <id> mynexus ・NEXUSサーバを識別するためのID
・任意の値で構わない
2 <url> http://mynexusserver:8081/nexus/content/groups/public ・NEXUSサーバで公開しているリポジトリのURL
・NEXUSサーバの管理者に聞くこと
setting.xml(NEXUS経由)
<settings>
  <localRepository>C:/tools/repository</localRepository>
  <mirrors>
    <mirror>
      <id>mynexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://mynexusserver:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>mynexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>mynexus</activeProfile>
  </activeProfiles>
</settings>

5. 動作確認

TERASOLUNA5.xのガイドラインの「3.1.2. 開発プロジェクトの作成」で試しにプロジェクトを作成してみます。

ガイドラインに記載のプロジェクトの作成例
mvn archetype:generate -B^
 -DarchetypeGroupId=org.terasoluna.gfw.blank^
 -DarchetypeArtifactId=terasoluna-gfw-multi-web-blank-mybatis3-archetype^
 -DarchetypeVersion=5.3.0.RELEASE^
 -DgroupId=com.example.todo^
 -DartifactId=todo^
 -Dversion=1.0.0-SNAPSHOT
実行結果(NEXUS経由の場合)

C:\work>mvn archetype:generate -B^
More?  -DarchetypeGroupId=org.terasoluna.gfw.blank^
More?  -DarchetypeArtifactId=terasoluna-gfw-multi-web-blank-mybatis3-archetype^
More?  -DarchetypeVersion=5.3.0.RELEASE^
More?  -DgroupId=com.example.todo^
More?  -DartifactId=todo^
More?  -Dversion=1.0.0-SNAPSHOT
[INFO] Scanning for projects...
[INFO] Downloading: http://mynexusserver:8081/nexus/content/groups/public/org/codehaus/mojo/maven-metadata.xml
[INFO] Downloading: http://mynexusserver:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-metadata.xml

... 省略 ...

[INFO] Using following parameters for creating project from Archetype: terasoluna-gfw-multi-web-blank-mybatis3-archetype
:5.3.0.RELEASE
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.example.todo
[INFO] Parameter: artifactId, Value: todo
[INFO] Parameter: version, Value: 1.0.0-SNAPSHOT
[INFO] Parameter: package, Value: com.example.todo
[INFO] Parameter: packageInPathFormat, Value: com/example/todo
[INFO] Parameter: package, Value: com.example.todo
[INFO] Parameter: version, Value: 1.0.0-SNAPSHOT
[INFO] Parameter: groupId, Value: com.example.todo
[INFO] Parameter: artifactId, Value: todo
[INFO] Parent element not overwritten in C:\work\todo\todo-env\pom.xml
[INFO] Parent element not overwritten in C:\work\todo\todo-domain\pom.xml
[INFO] Parent element not overwritten in C:\work\todo\todo-web\pom.xml
[INFO] Parent element not overwritten in C:\work\todo\todo-initdb\pom.xml
[INFO] Parent element not overwritten in C:\work\todo\todo-selenium\pom.xml
[INFO] Project created from Archetype in dir: C:\work\todo
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31.169 s
[INFO] Finished at: 2017-09-05T20:32:37+09:00
[INFO] Final Memory: 10M/28M
[INFO] ------------------------------------------------------------------------

C:\work>

NEXUS経由の場合、[INFO] Downloading: http://mynexusserver:8081/nexus/content/groups/public/org/codehaus/mojo/maven-metadata.xml
のようにダウンロード先のURLがNEXUSサーバになっていることが分かります。

6. さいごに

今回はWindows上にMavenをインストールする方法と、Proxyを経由させる設定やNEXUSを経由させる設定について説明しました。
少人数のプロジェクトでは各個人がProxyを経由する方法でも構いません問題はありませんが、大規模なプロジェクトではNEXUSのキャッシュが有効になるNEXUSを経由させることをお勧めします。

5zm
都内のIT企業でアーキテクトのお仕事をしてます。そのご縁で「Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発」を共著させて頂きました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした