#navi_header|Java| リモートリポジトリ上のjarではなく、3rdパーティ製のライブラリなどを参照させたい場合、大雑把には以下の選択肢があります。 + sonatypeのNexusなど、ローカルネットワーク環境でのMavenリポジトリサーバを用意できる場合は、そっちにUPして参照する。 + マシンのローカルファイルシステム上のjarを参照させる他ない場合は・・・ ++ "$HOME/.m2/" 以下なり、あるいは好きなディレクトリ上に、ローカルリポジトリとしてmvn install:install-file でインストールしておく。 ++ ""に"system"を設定して、でローカルのjarファイルパスを指定する。 本記事では、ローカルファイルシステム上のjarを参照する方法についてごく簡単に紹介します。 ** ローカルリポジトリにインストールする方法 解説に使うサンプル(JDK 1.7, Maven 3.0.5, Win7SP1にて動作確認): https://github.com/msakamoto-sf/javasnack サンプルではごく簡単なjarファイルをMavenプロジェクト内の専用ディレクトリにインストールします。 まず対象のjarファイルは以下に用意します。作成方法などは同じディレクトリ中にあるREADME.txtを参照してください。 javasnack/subprojects/jar1/testjar1-1.0.jar 続いて、Mavenプロジェクト内に、リポジトリとして参照するためのディレクトリを作成します。以下がサンプルでのディレクトリです: javasnack/subprojects/subprojects/repo あとは"-DlocalRepositoryPath"で上記ディレクトリを指定して、"mvn install:install-file"を実行します。"groupId", "artifactId", "version" は後でpom.xmlの依存性設定で使いますので、分かりやすい名前にしておきましょう。 #pre||> cd javasnack/ mvn install:install-file \ -DlocalRepositoryPath=subprojects/repo \ -DcreateChecksum=true \ -Dpackaging=jar \ -Dfile=subprojects/jar1/testjar1-1.0.jar \ -DgroupId=subprojects \ -DartifactId=testjar1 \ -Dversion=1.0 ||< サンプルでは、面倒臭いのでインストールした状態の"subprojects/repo"をGitリポジトリにUPしてしまってます。 あとはpom.xmlで依存性を追加します。まずでローカルリポジトリを定義します。 #pre||> projectlocalrepo file://${project.basedir}/subprojects/repo ||< 依存性は、"mvn install:install-file" 時に指定したgroupId, artifactId, versionを指定します。 #pre||> subprojects testjar1 1.0 ||< なお、試してないのでちょっと自信が無いのですが、"$HOME/.m2/"以下のリポジトリにインストールするには"mvn install:install-file"で"-DlocalRepositoryPath=subprojects/repo"のオプション指定を削除するとそちらにインストール出来るような気がします・・・。 またその場合は、pom.xmlにリポジトリの指定は要らなくなる・・・筈・・・。 ** =system, を使う方法 以前の記事、 [[1084]] を参考にしてください。JDKのtools.jarが、外部3rdパーティのjarになるだけの筈です。 ただし""をsystemに設定した場合、fatjarやonejar, war, earなどにアーカイブする際、ちゃんとまとめてくれるのかどうか怪しいので、確認が必要になると思います。 ---- 参考資料: - java - Can I add jars to maven 2 build classpath without installing them? - Stack Overflow -- http://stackoverflow.com/questions/364114/can-i-add-jars-to-maven-2-build-classpath-without-installing-them/ --- 英語でかなりわかりやすく、Mavenでの選択肢が提示されてる。 - Mavenプロジェクトで3rdパーティJARを扱う方法|Ouobpo -- http://ameblo.jp/ouobpo/entry-10051976866.html --- これも分かりやすい。というか本記事はこちらのほぼ丸パクリ・・・ - java - build maven project with propriatery libraries included - Stack Overflow -- http://stackoverflow.com/questions/4491199/build-maven-project-with-propriatery-libraries-included/4491343#4491343 - java - Adding local jars in maven project - Stack Overflow -- http://stackoverflow.com/questions/4955635/adding-local-jars-in-maven-project - Maven - Guide to installing 3rd party JARs -- http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html なお、Gradleを使うとリポジトリの用意など無しに、もっと簡単に実現出来ます: [[1215]] #navi_footer|Java|