どのリポジトリにないライブラリも、できればMavenで管理したいです。方法としては、以下の3つがあります。
1)インハウスリポジトリを構築し、そこにライブラリを格納する
一番おすすめの方法です。pom.xmlに以下のようにインハウスリポジトリの場所を指定します。
<repositories>
<repository>
<id>xxx-inhouse-repository-group</id>
<name>Xxx Inhouse Maven Repository Group</name>
<url>http://192.168.10.20/maven/</url>
</repository>
<repositories>
各開発者がライブラリの場所を意識することなく開発環境を構築することができます。デメリットは、サーバーを一台建てないとならないので、少人数の開発の場合「なにもそこまで」となってしまいます。
2)ローカルリポジトリに格納する
以下のような内容を持つバッチファイルを作成し、バッチファイルと同一のディレクトリに格納したいライブラリのjarを配置します。
配置後、バッチファイルを実行することで、ローカルリポジトリにライブラリが格納されます。
set MAVEN_PATH="C:\\Program Files\\NetBeans 7.2\\java\\maven\\bin\\mvn.bat"
call %MAVEN_PATH% install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=1.0.0 -Dpackaging=jar
1行目でMavenがインストールされているパスを指定していますが、Mavenインストール後に環境変数を設定しているのであれば不要です。
ローカルリポジトリへのライブラリの格納は1度だけ行えばよいので、少人数の開発の場合、このようなやり方でいいかもしれません。配置するライブラリや、バッチファイルは、Mavenプロジェクトの中に含めておかないと、後からプロジェクトに参画した開発者が戸惑うかもしれません。
3)scope=systemを使う
ややトリッキーな方法です。
pom.xmlに、以下のように記述し、systemPathに記述した位置に依存ライブラリを配置します。
scopeはsystem固定なので、依存ライブラリを実行モジュールに含めた形でwarファイルを作りたい場合、下記のようにしておく必要があります。
<dependency>
<groupid>com.oracle</groupid>
<artifactid>ojdbc6</artifactid>
<version>1.0.0</version>
<scope>system</scope>
<systempath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc6.jar</systempath>
</dependency>
各開発者が何もする必要がないので手軽ですが、はじめにも述べたようにトリッキーな方法です。NetBeansだと、警告がでたりします。