ボールを蹴りたいシステムエンジニア

ボール蹴りが大好きなシステムエンジニア、ボールを蹴る時間確保の為に時間がある時には勉強する。

Mavenでライブラリのjarファイルをダウンロード

cygwin上からmavenを実行してjarファイルをダウンロードする。
以下の例ではgsonライブラリをダウンロードする例。

やろうと思った背景として、gsonライブラリのjarファイルがネットで見つからなかったので、mavenの勉強と併せてmaven利用でのライブラリ取得方法を学ぼうと思った為。

環境

Windows10
cygwin
maven3.3.9
java1.8

事前作業

ダウンロード対象jarのdependencyをMVNrepositoryから取得する
gsonの場合は下記URLにあった
https://mvnrepository.com/artifact/com.google.code.gson/gson/2.7
MVNrepositoryから検索できるぽい。

手順

cygwinjavamavenのPATHを通す

export PATH="${PATH}:/cygdrive/c/maven-3.3.9/bin/"
export PATH="${PATH}:/cygdrive/c/Program Files/Java/jdk1.8.0_101/bin/"
export JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.8.0_101"

対話形式(generate)でプロジェクトを作成する

mvn archetype:generate 

雛形一覧がずらっと表示され、雛形の選択を求められる
最後の番号はデフォルトの番号らしい
とりあえず今回はデフォルトの826を入植してエンター

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 826: 

今度は雛形のバージョン入力を求められる
最後の数字はデフォルトのバージョン
今回はデフォルトの6を入力してエンター

1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6:

groupId(開発グループの ID)の選択を求められる
開発グループのIDは任意の文字列らしい
今回は「gsoutest」と入力してエンター

Define value for property 'groupId': : 

artifactId(成果物のID)の入力を求められる
成果物のIDは任意の文字列らしい
今回はgsoutestと入力してエンター

Define value for property 'artifactId': : 

versionの入力を求められる
最後の文字列がデフォルトらしいので
デフォルトの1.0-SNAPSHOTを入力してエンター

Define value for property 'version':  1.0-SNAPSHOT: :

packageの入力を求められる
groupIdと同じで良ければ未入力でエンター

Define value for property 'package':  org.hoge.foo: :

以下が表示されるのでyと入力してエンター

 Y: : 

プロジェクトが生成される
雛形によってプロジェクト構成は異なるみたいだけど今回はjarのダウンロードが目的なので特に気にしない。

$ ls gsoutest/
pom.xml  src  target

作業上プロジェクトが生成されるが、このプロジェクトはjarファイル取得後は不要になるので削除する。

移動

$ cd gsoutest/    

pop.xmlに対象ライブラリのdependencyを追記

    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.7</version>
    </dependency>

こうなる

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>gsontest</groupId>
  <artifactId>gsoutest</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>gsoutest</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.7</version>
    </dependency>
  </dependencies>
</project>

ライブラリダウンロード、libディレクトリに出力

$ mvn dependency:copy-dependencies -DoutputDirectory=lib

jarがダウンロードされた

$ ls lib/      
gson-2.7.jar