Maven

profileで出力ディレクトリの切り替え

設定ファイルとかをprofileで切り替えてる時に、出力ディレクトリを同じにしていると うっかり違う環境の設定ファイルで動いてしまうことへの対策。 production target-production

Maven Dashboard Report Plugin

http://mojo.codehaus.org/dashboard-maven-plugin/ Maven2の各種レポートの結果を記録して統計してくれるプラグインみたいですね。 QALab(http://qalab.sourceforge.net/)とかぶってそうだけど。

Maven2でWarをマージ→失敗

一応書いておくけど↓はエラーが出たのであっさりあきらめました。 http://cargo.codehaus.org/Merging+WAR+files まとめWar用のプロジェクトを作ってそこでmaven war pluginでoverrayするのが現実的。

pom.xmlで忘れやすいこと

頼むからXMLスキーマと名前空間の宣言を書いておいてくれ。 WTPのXMLエディタで補完が出来ないと編集できん。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"></project>

Maven2でWarをマージ

id:matobat:20080309:1205056095で複数のWebアプリを一つのWarにまとめる方法を書いたけど、 Cargoを使うと重複するファイルをマージしたりも出来るらしい。 http://cargo.codehaus.org/Merging+WAR+files まだ試してないけど。

Maven War Plugin - Overlays

http://maven.apache.org/plugins/maven-war-plugin/overlays.html 複数のWarプロジェクトをまとめて一つのWarにしてくれる機能。 今のプロジェクトで使うかも。

Maven Shade Plugin

http://maven.apache.org/plugins/maven-shade-plugin/ Fatjarみたいに一つのJarの中に依存ライブラリも含めてくれるやつらしい。 バッチとかで一つのJarだけで配布するのに使えそう。

Maven2でSelenium RC

id:matobat:20061216:1166264864ではSeleniumの実行はAntに任せてたけど、やっとMaven2プラグインでも出来るようになったみたい。 http://mojo.codehaus.org/selenium-maven-plugin/ <build> <finalName>${artifactId}</finalName> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>selenium-maven-plugin</artifactId> <executions> </executions></plugin></plugins></build>

Seasar Maven Archetypes

http://maven-archetypes.sandbox.seasar.org/ とりあえず、Seasar2.4+S2Struts+MayaaのArchetypeをリリースしました。 Archetype作るのって難しくはないけど、結構手間がかかるので協力者募集中。 出来れば代わりにリーダーをやってくれると最高です。

archetypeの継承

archetypeを作るとフレームワークの組み合わせが面倒くさいので、継承して再利用できれば楽だと思ったんだけど、親で指定できるのはpackagingがpomの場合だけなんですね。 それだとテンプレートとかが再利用できないので意味がない。

archetypeで作ったプロジェクトをEclipseで使いたい

生成されたプロジェクトのディレクトリで以下を実行 mvn eclipse:add-maven-repo -Declipse.workspace="eclipseのインストールディレクトリ" mvn eclipse:eclipse -Dwtpversion=1.5 Eclipseでインポート WTPが必要です。またTomcatを使う場合はServersプロジ…

Mayaa+WebWork2+S2XWork+Seasarのarchetype

Strutsの代わりに、WebWork2を使いたい人向け。 archetypeArtifactIdをmaven-archetype-mayaa-webwork2に変えるだけで後は同じです。 Struts2もあるけど、そもそもS2XWork2とstruts2-mayaa-pluginとstruts2-seasar-pluginをまだリリースしていないので。

Mayaa+S2Struts+Seasarのarchetype

ということでJava to Rubvに影響されて、Javaで出来ること第1弾として、 Mayaa+S2Struts+Seasarのプロジェクトの雛形を作るMaven2のarchetypeを作ってみました。 Maven2をインストール http://maven.apache.org/ archetypeを使用してプロジェクトの雛形を生…

独自のarchetype

id:matobat:20070425:1177403134でarchetypeがibiblio.orgにないとだめと書きましたが、 以下のオプションをつけるといけるようです。 -DremoteRepositories=リポジトリURL

自プロジェクトのリポジトリをibiblio.orgと同期

Mayaa+WebWork2(Struts2)+Seasarの環境とか作るのは大変だと思うので、 Maven2のarchetypeを作ってたんだけど、archetypeってibiblio.orgにないとだめなのね。 逃げる手はあるかもしれないけど、普通の人が使うツールでいちいち手順が増えるのも面倒なので、…

m2eclipseで勝手にプロジェクト参照

m2eclipseで依存しているモジュールが同一ワークスペースにある場合、勝手にプロジェクト参照するようになっている…。 しかもその状態ではほとんど動かない…。

m2eclipse 0.0.10

http://m2eclipse.codehaus.org/ 起動時の処理が少なくなって良い感じですね。あと半年早かったらもっと良かったんだけど…。

続:antのoptional taskを使う場合

id:matobat:20061211:1165836572の続き。 plugin要素の中にdependencyを書いた場合、repositoriesの方ではなくpluginRepositoriesに設定してあるリポジトリを見に行くみたい。

cargo + Selenium RCでintegration test

CargoでTomcatをダウンロード・起動・デプロイして、Selenium RCでテストする方法。 テストケースの準備 src/test/selenium/AppTestSuite.htmlにSeleniumのTestSuiteを置く。 pom.xml <project> <modelVersion>4.0.0</modelVersion> <groupId>グループID</groupId> <artifactId>アーティファクトID</artifactId> <version>バージョン</version> <…</project>

antのoptional taskを使う場合

http://maven.apache.org/plugins/maven-antrun-plugin/classpaths.html plugin要素の中にdependencyを書くのね。

Maven Release Plugin

http://maven.apache.org/plugins/maven-release-plugin/ mvn release:prepare release:perform 以下を自動でやってくれる。 バージョンNoの変更 SCMへのタグ打ち SCMからソースをチェックアウト コンパイル デプロイ SCMのユーザ/パスワードをpom.xmlに直書…

Maven Application Assembler Plugin

コマンドラインアプリ用に、実行用のバッチファイルと必要なJarファイルをまとめたディレクトリを作ってくれる。 まだUnix環境で試してないけどたぶん使えそう。 http://mojo.codehaus.org/appassembler/appassembler-maven-plugin/usage.html

解決:環境ごとに違う設定の扱い

やっと出来ました。開発、結合テスト、本番で別々の設定ファイルをパッケージングする方法です。 ディレクトリ構成 src -- main -- resources (共通の設定ファイル+開発環境用設定ファイル) integration-test -- resources (結合テスト環境用設定ファイル) …

環境ごとに違う設定の扱い

動く環境ごとに違う設定(DB接続先やログ出力)を使いたい時、Antの時はwarに固める時に、 環境ごとに異なる設定のファイルを上書きしてたんだけど、Maven2ではどうなるか調査中。 profileを設定すればうまくいきそうなんだけど、なぜか思った通りには動いてい…

m2eclipseの新規インストールでエラー

今日プロジェクトに新しいメンバーが入ったので環境設定してたらm2eclipseの設定画面でエラーが発生。 なんかローカルリポジトリがないとかエラーが出ていたので%HOME%\.m2\repositoryを作成したらエラーが出なくなった。 今まではMaven2をインストールして…

m2eclipse関係

Maven 2.x Plug-in for Eclipseを使った時にビルドパスが設定されない問題とその解決方法 http://d.hatena.ne.jp/agt/20060808#p1 ちょうど同じ問題で悩んでいました。おかげで無事解決。 m2eclipseプラグインと tomcatプラグイン (DevLoader) の組み合わせ …

Continuumのメールサーバ設定

http://today.java.net/pub/a/today/2006/05/30/continuous-integration-with-continuum.html#configuring-the-mail-server 変更後Continuumを再起動すると有効に

Maven2+Cobertura

http://d.hatena.ne.jp/imaginator/20060304/p1 の通り。現在はバージョン指定は必要無い模様。

site-deployでエラー

Mavenでscpプロトコルでsite-deploy使用としたら以下のようなエラーが発生。 Caused by: java.lang.ArrayIndexOutOfBoundsException: 2 at com.jcraft.jsch.Util.toBase64(Unknown Source) at com.jcraft.jsch.ProxyHTTP.connect(Unknown Source) at org.apa…

Maven2+JUnit4

Maven2でJUnit4を使う場合の手順 dependencyのJUnitのバージョンを4.0にする maven-surefire-pluginをSubversionから取得(https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-surefire-plugin) maven-surefire-pluginをチェックアウトしたディレク…