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から検索できるぽい。
手順
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