Google Code にプロジェクトをホスティングしているが、自分の作ったアーティファクトもこのサイトにデプロイしたい。そうすれば、ちょっとした POM の記述で成果物を配布できるし、依存関係も Maven が解決してくれる。リポジトリは Subversion を使っている。
さて、先達も同様のことをやっているのを目にしているので簡単なことだと思っていたが、そうはいかなかった。Google Code のいくつかのプロジェクトの POM を参考にしたり、Google で検索してみたら、いくつかの方法が見つかった。
- com.google.code.maven-svn-wagon:maven-svn-wagon
- org.jvnet.wagon-svn:wagon-svn
- org.apache.maven.wagon:wagon-webdav
サンプルの数が多かったので、まず2番目を試した。
- 例 2010-02-23, Google Code as Maven Repository - http://themagicofscience.blogspot.jp/2010/02/google-code-as-maven-repository.html
mvn deploy を実行すると、メタデータの XML ファイルをダウンロードし始めたきり、先に進まない。Maven のサイトから Wagon を手繰り JIRA をチェックしたり、POM の記述をいろいろと変えてみたが、一向に解決しない。
続いて、1番目の方法を試す。
- 例 2012-07-14, Alexey Grigorev's answer to "Deploy maven generated site on Google Code svn?" - http://stackoverflow.com/questions/2943875/deploy-maven-generated-site-on-google-code-svn
mvn deploy したら、以下の例外がスローされた。
認証失敗。settings.xml に指定したユーザ名とパスワードで間違いなく Google にログインできることは確認した。Caused by: org.apache.maven.wagon.authorization.AuthorizationException: svn: Authentication required for '<https://xxx.googlecode.com:443> Google Code Subversion Repository'
この確認方法は、間違っている。なぜならば、ここで要求されるパスワードは Google アカウントのパスワードではないからだ。正しくは、Google Code のセッティングページに表示されるパスワードを使わねばならない。
さて、settings.xml でパスワードを正しく設定したら、問題なくメタデータや JAR ファイルをアップロードして、BUILD SUCCESS!
pom.xml (snippet):
setting.xml (snippet):
リソース:
- com.google.code.maven-svn-wagon:maven-svn-wagon - http://search.maven.org/#browse%7C1276728072
- org.jvnet.wagon-svn:wagon-svn - http://search.maven.org/#browse%7C1127655411