May 08, 2007
[Maven] プライベートなリモートリポジトリの設定変更
Maven2 用のプライベートなリモートリポジトリを整理してみた。 今までは URL を一切公開していないので、特にアクセス制限はかけていなかったのだが、 とりあえず HTTPS + Basic 認証 くらいはかけておこうかと設定を変更してみた。
Maven2 リモートリポジトリの Basic 認証
これは非常に簡単。 サーバ側で Basic 認証の設定をしておいて、pom.xml、settings.xml を編集するだけ。
pom.xml
<project>
...SNIP...
<repositories>
<repository>
<id>my-private-repository</id>
<name>my private repository</name>
<url>http://www.example.com/maven2</url>
</repository>
</repositories>
...SNIP...
</project>
settings.xml
<settings>
...SNIP...
<servers>
<server>
<id>my-private-repository</id>
<username>me</username>
<password>mypassword</password>
</server>
</servers>
...SNIP...
</settings>
Maven2 リモートリポジトリの HTTPS アクセス
これは結局実現できなかった。 プライベートサーバなのでディジタル証明書を正規に購入するわけもなく、 オレオレ証明書で運用しているのだが、結局はそれがネックになってしまった。 JDK の cacerts にオレオレ証明書を登録してみたり、独自の keystore にオレオレ証明書を登録して MAVEN_OPTS に "-Djavax.net.ssl.trustStore=keystore -Djavax.net.ssl.trustStorePassword=password" を指定したりと色々試してみたのだが、結局動作しなかった。
自前のコードで HTTPS 接続を試してみたところ、証明書に問題がある可能性も出てきてこれ以上の調査は結構時間がかかりそうだったので断念。 いつの日か HTTPS + Basic 認証で Maven2 リモートリポジトリにアクセスしたいものだ。 ・・・ディジタル証明書を買う、というのが一番手っ取り早い解決方法なのだが。



