Seasar2でmvn siteを実行するとArrayIndexOutOfBoundsExceptionが発生する不具合について

http://d.hatena.ne.jp/garbagetown/20090716/1247845875
修正方法はリンク先の通り。
が、ライブラリにパッチ当てるの初めてだったのでパッチ当てる手順を補足しておく。
http://s2container.seasar.org/2.4/ja/downloads.html
リンク先から、S2ContainerとS2Tigerのzipファイルをダウンロードし、eclipseのプロジェクトエクスプローラーで、「インポート」→「一般」→「既存プロジェクトをワークスペースへ」で、「アーカイブ・ファイルの選択」に落としてきたzipを指定して、プロジェクトを作成する。
プロジェクトのプロパティ→構成→Convert to Maven Projectで、Mavenプロジェクトに変換。
インポートしたs2-tigerプロジェクトで、該当のソースに修正を加える。
ビルドは勝手に通るはず。
修正後、mvn packageを実行することで、target配下にs2-tiger-2.4.43.jar、s2-tiger-2.4.43-sources.jarが生成される。
一応パッチ適用済みのライブラリであることを強調したいので、ファイル名をs2-tiger-2.4.43patched.jar、s2-tiger-2.4.43patched-sources.jarに変更。
で、s2-tiger-2.4.43patched.jarを、m2ローカルリポジトリに下記手順でインストールし、pom.xmlに依存関係を追加すればmvn siteでエラーが出なくなる。
ローカルリポジトリへのインストール。

mvn install:install-file -Dfile=C:pleiadesworkspaceprojectnames2-tiger-2.4.43patched.jar -DgroupId=org.seasar.container -DartifactId=s2-tiger -Dversion=2.4.43patched -Dpackaging=jar

pom.xmlへの依存関係追加


  
    
      org.seasar.container
      s2-tiger
      2.4.43patched
    
  

ローカルリポジトリに手動で毎回インストールするのはアレなので、プロジェクト内にローカルリポジトリを作成して、そこにあらかじめパッチ適用済みのものを用意しておき、プロジェクト内ローカルリポジトリを優先的に読ませるようにするのが良さ気。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です