Mavenレポジトリからjarファイルだけ取得する
Apache MavenはJavaのプロジェクト用の管理ツールです。
最初からmavenや他の管理ツールが組み込まれているプロジェクトならいいのですが、そうでないプロジェクトのメンテナンスをする場合依存性のあるjarファイルをひとつずつ集めてくるのは手間です。
そこで、mavenをコンソールから操作して、それらの依存性を含めて必要なjarファイルだけをダウンロードする方法を書き残しています。
初期設定
Mavenのダウンロードの前に、もしJRE(Java環境)がインストールされていなかったら、openJDKをダウンロードして、インストールします。
バージョンはLTSの最新がいいと思いますが、筆者は8の環境を持っていたのでそのまま使いました。
インストール時にJAVA_HOMEを設定するか否かの選択がありますので(デフォルトのままだと設定されません)、選択してください。
選択し忘れたら、自分で環境変数「JAVA_HOME」を作成して、Javaのインストールフォルダを指定します。筆者の例だと「C:¥Program Files¥Eclipse Foundation¥jdk-8.0.302.8-hotspot」となっています。
環境変数の設定の仕方は以前の記事を参照してください。
Javaの環境が整ったら、先に紹介した公式サイトのダウンロードページより、Mavenのバイナリをダウンロードします。
ここではWindowsで利用するので、zip版の「apache-maven-3.8.7-bin.zip」をダウンロードしました。
ダウンロードが終わったら圧縮ファイルを展開して、適当な場所にコピーします。
Mavenのルートフォルダ配下にあるbinフォルダにパスを通します。(ただ今回はライブラリを取得するだけなので必須ではありません)
Mavenの設定
利用するJavaのライブラリはMavenのセントラルレポジトリという共有スペースに保存され管理されています。
Mavenではここにあるものを、ローカルレポジトリ(自分のPC内にあるレポジトリ)にダウンロードした上で自身のプロジェクトで利用します。
まず、このローカルレポジトリの設定をします。
プロジェクトのルートフォルダの配下にあるconfフォルダにsettings.xmlというファイルがあります。
これは、ファイル名通りXML形式のファイルで、ここにMavenの設定を記述します。
すでに記述場所はコメントとして提示されているので、localRepositoryの文字を頼りに場所を探します。コメント終了直後にlocalRepositoryの値を設定します。
settings.xml
<!-- localRepository...
...
-->
<localRepository>D:/apache-maven-3.8.7/rep</localRepository>
ファイルセパレーターはスラッシュで設定します。
場所はどこでもいいです。今回は一時的に使うだけなので消してもいいものだとわかるようにあえて別にしています。xmlのコメントにもあるようにデフォルトはc:\ユーザー\[ユーザー名]\.m2\repositoryフォルダとなります。
ライブラリ(jarファイル)のダウンロード
初期設定が終わったらライブラリをダウンロードします。
- ライブラリの検索
Maven REPOSITORYで目的のライブラリを探します。
ここではsmbjライブラリを検索してみました。バージョン別に表示されると思いますので、目的のバージョンをクリックします。
次画面では、アプリケーション別にインポートの設定が載っていますので、Maven用になっているのを確認して、dependencyタグでかこまれた一連のHTMLをコピーします。
- POMファイルの作成
好きな場所にライブラリをダウンロードするためのフォルダを作成し(先ほどのMaven用のレポジトリフォルダとは別に作ります)、その中にMavenで利用したいライブラリを設定するためのファイルである「 pom.xml 」ファイルをつくります。ダウンロードするだけなので適当ですが、本来はgroupIdに自身のアプリのJavaパッケージのプレフィックスとなる部分、artifactIdにアプリ名、バージョンも正式に管理されたバージョンを入れます。
modelVersionは固定値です。
外枠ができたら、コピーしたdependency部分をdependenciesの内側になるように貼り付けます。
pom.xml
<project> <modelVersion>4.0.0</modelVersion> <groupId>groupid</groupId> <artifactId>artifactid</artifactId> <version>0.0.1</version> <dependencies> <dependency> <groupId>com.hierynomus</groupId> <artifactId>smbj</artifactId> <version>0.11.5</version> </dependency> </dependencies> </project>
- ダウンロードの実行
PowerShellなどのコンソールから、POMファイルを作成したフォルダに移動しそこで、次のコマンドを入力します。
筆者の場合、パスを通してないので、フルパスで書いていますが、パスを通したのなら「 mvn 」だけでも実行可能です。(PowerShellではbinフォルダにいる時は.¥mvnとしないといけないことに注意してください。)
d:\apache-maven-3.8.7\bin\mvn dependency:copy-dependencies実行すると、mavenで利用されるライブラリがローカルレポジトリにダウンロードされたあと、カレントフォルダ\target\dependencyサブフォルダ内に目的のライブラリとそれが依存しているjarファイルがダウンロードされます。
Eclipseで作業
今度はEclipseでMavenをイニシャルしてライブラリをダウンロードしてみます。まずプロジェクトの新規作成時に、Otherの項目からMavenプロジェクトを選択します。
「 create simple project 」にチェックボックスを入れて次に進みます。Group IDとArtifact IDを入力すればプロジェクトを作成可能になるので、先ほど同様に適当な値または、正式な値を入力します。
パッケージエクスプローラーの中にpom.xmlファイルが生成されているので、先ほど同様に記述をします。
pom.xmlファイルを保存するとすぐにライブラリのダウンロードが始まります。
ダウンロードされたフォルダはパッケージエクスプローラのMaven Dependenciesの項目から確認できます。この時、ライブラリのダウンロードフォルダはデフォルト値となります。