倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

Maven2/3

どんとこいタイプ・アノテーション! Checker Framework 導入あの手この手 ~without IDE 編~

前回の記事『ラムダ式やストリーム API や新しい日時 API だけじゃない! Java8 のタイプ・アノテーションあの手この手』で、Java8 で導入されたタイプ・アノテーションがどういったものか紹介しました。 その記事では同一要素に重複して同じアノテーション…

Spock ことはじめ ~without IDE 編~

Java/Groovy のテスティング・フレームワーク Spock の使い方をあれこれ調べてみました。 まぁ、Gradle 使えるならそれに越したことはないですが、なんとなく Maven3 やコマンドラインからの使用方法も試してみました。どうも Maven3 から GMaven が Groovy …

GMaven 1.3 での pom.xml

GMaven 1.3がリリースされていたので使ってみた(参照 URL : Ben Tilford's Blog「GMaven 1.3 is out」)。このバージョンでは configuration 要素の sourceEncoding, source, target が動作するようになった Java スタブコードで java.util.*, java.io.* …

Groovy プロジェクトを Maven2 でコンパイルしてみたら・・・

なんか、やたらとコンパイルエラーがでますねぇ・・・(^ ^;) ほとんどライブラリのダウンロード(+ちょっとしたスクリプト)にしか使ってなかったので、問題ないかと思ってたけど、あまり気持ちのいいものじゃないですねぇ。IntelliJ IDEA 上でコンパイル&…

イカす達人 (8) : テストにだけ Groovy を使うプロジェクト

以前に Maven2 プロジェクトで Groovy を使用する方法を見ました(一覧)。 ただし、Groovy は便利で、Java と Groovy がシームレスに連携できるとはいえ、いきなり Java プロジェクトを Groovy プロジェクトに変更できるとは限りません。そこで、メインコー…

GMaven プラグインを作ろう! (4) : GMaven プラグイン・プロジェクトを生成する Groovy スクリプト

GMaven プラグイン・プロジェクトの pom.xml は結構複雑なので(以前の記事)毎回書くのは大変です。 そこで Groovy の練習を兼ねて、テンプレートを生成するスクリプトを書いてみました(GMavenPluginArchetype.groovy)*1(一覧)。スクリプトの実行 上記…

GMaven プラグインを作ろう! (3) : GroovyMojo、プラグインのインストール&使用とか

今回はプラグインのインストール&使用とか(一覧)。GroovyMojo クラス GMaven プラグインで行う処理を実装するのは GroovyMojo のサブクラスです。 なので、GMaven プラグインには最低1つは以下のようなクラス(GroovyMojo クラス)を作成する必要がありま…

GMaven プラグインを作ろう! (2) : GMaven プラグイン・プロジェクトの pom.xml

今回は GMaven プラグイン・プロジェクト(Groovy による Maven2 プラグインを開発するプロジェクト)の pom.xml を見ていきます(一覧)。まずその前に、お詫びと訂正を。 別に拙者が悪いわけではないんですけど。 前回見た GMaven プラグイン・プロジェク…

プロジェクトのテンプレートが・・・

「対話的に Maven2 プロジェクトを生成する」際のコマンド mvn archetype:generate を実行すると、プロジェクトのテンプレートが249個も出てくるんですけど! 「番号で選べ」って言われても探しきれない! しかも番号が前のモノから変わってるし!挙げ句の果…

GMaven プラグインを作ろう! (1) : GMaven プラグイン・プロジェクトの生成

今回から何回かにわたって、Groovy を使った Maven2 プラグイン(以下「GMaven プラグイン」)の開発方法を見ていきます(Implemeting Maven Plugins 参照)。 今回は GMaven プラグイン・プロジェクトの生成方法(一覧)。 GMaven プラグイン・プロジェクト…

イカす達人 (7) : その他、GMaven でできること

GMaven の全ての機能を紹介するのは面倒なので、GMaven できることを列挙してみました(一覧)。 大きく分けて次の2つ: Groovy コードを実行する GMaven のその他のゴール 詳しくは各表の「ドキュメント」に張っているリンクを参照。Groovy コードを実行す…

イカす達人 (6) : Groovy コード内で使用できる定義済み変数

前々回、前回に Maven2 で Groovy コードを実行する方法を見ましたが、このコード中で、自分で定義する必要なく使用できる「定義済み変数」がいくつかあります。 今回はそれらと、それらのプロパティを見ていく、というか参考のために列挙しておきます(一覧…

イカす達人 (5) : フェイズ実行時に Groovy コードを実行する

前回に引き続き、今回は「フェイズ実行時」に Groovy コードを実行する方法を見ていきます(一覧)。今回以降、特に必要がない限り Groovy 1.7 ではなく、Groovy 1.6 (GMaven 1.2) の環境を前提とします。pom.xml 実行したい Groovy コードは前回と同じく pr…

イカす達人 (4) : Groovy コードを実行する

今回は Maven2 で Groovy コードを実行する方法を紹介(一覧)。 「Executing Groovy Code」を参考にしてます。前々回と同じように、GMaven のサポートのせいで Groovy 1.7 以降を使うにはいろいろ設定が必要です。 とはいっても、ここで Groovy 1.6 を使っ…

イカす達人 (3) : GMaven プロジェクトのコンパイル、テスト、インストールとか

GMaven プロジェクトのコンパイル、テスト、インストールとか GMaven を使って作成した Groovy プロジェクトを「GMaven プロジェクト」と呼ぶことにします(一般的には使われてないと思いますが)。前回は GMaven プロジェクトの作成方法を見ました(一覧)…

イカす達人 (2) : Maven2 流 Groovy プロジェクト with Groovy 1.7

前回、GMaven でプロジェクトを生成する方法を見ましたが、どうもドキュメントが古いようで Groovy のバージョンが 1.5.6 とかでしか使えないので、Groovy, GMaven ともにもう少し新しいバージョンのものを使えるようにしましょう(一覧)。今回の内容: プ…

イカす達人 (1) : Maven2 流 Groovy プロジェクト

今回から何回かにわたり、GMaven の使い方を見ていきます(一覧)。今回の内容 プロジェクトを生成する 対話的にプロジェクトを生成する パラメータを指定してプロジェクトを生成する 生成されるプロジェクト ディレクトリ構造 pom.xml プロジェクトを生成す…

記事を整理

Maven2 関連の記事を整理しました(→) Apache Maven 2.0入門 Java・オープンソース・ビルドツール作者: 野瀬直樹,横田健彦出版社/メーカー: 技術評論社発売日: 2006/12/13メディア: 大型本購入: 8人 クリック: 141回この商品を含むブログ (97件) を見る

Archetype -- generate ゴール (2):パラメータを指定してプロジェクトを作成する

今回は「パラメータを指定してプロジェクトを作成する」方法を見ていきます(一覧)。 この方法は、Archetype プラグインの「create ゴール」と同じです*1。パラメータを指定してプロジェクトを作成する プロジェクト生成の流れは以下のようになります: コ…

Archetype -- generate ゴール (1):対話的にプロジェクトを作成する

最近あまり使っていなかったので更新に疎くなっていましたが、Archetype プラグインの「generate ゴール」がそれなりに使いやすくなっているようなので、使い方を見てみましょう。 といっても、以前の記事と内容はあまり変わりませんが*1。プロジェクトの作…

Maven2 プロジェクトで JSON を使う

Maven2 プロジェクトで JSON を用いるためには、プロジェクトの POM ファイルに以下のような <dependency> 要素を付加します: <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20070829</version> </dependency> JSON を使ったサンプル Maven2 とはあまり関係ありませんが、『Ajax&JavaーJavaプログラマのためのAjaxプライマー</dependency>…

Web アプリケーション開発のための Maven2 プロジェクト(4):ローカル・サーバへの配備

初めて Web アプリケーションを配備する 開発中のプロジェクトをビルドしてローカル・サーバへ配備 (deploy) するには、プロジェクトのベース・フォルダ上でコマンド mvn tomcat:deploy を実行します。 このコマンドで、デフォルトのビルド・ライフサイクル…

Web アプリケーション開発のための Maven2 プロジェクト(3):ローカル・サーバの設定

Web アプリケーションを開発する際、実際にローカル・サーバなどのサーバに配備 (deploy) して挙動を確認する作業をする必要があります。 ローカル・サーバに Tomcat を用いている場合、「tomcat-maven-plugin」によって、Web アプリケーションを配備する処…

Web アプリケーション開発のための Maven2 プロジェクト(2):プロジェクトの Eclipse 上への読み込み

Eclipse プロジェクトの設定ファイルを生成する プロジェクトのベース・フォルダ上で以下のコマンドを実行します: mvn eclipse:eclipse Eclipse 上へプロジェクトを読み込む Eclipse 上で、[メニュー]File → Import として 「Import ダイアログ」を開き、下…

Web アプリケーション開発のための Maven2 プロジェクト(1):Maven2 プロジェクトの新規作成と設定

Maven2, Eclipse, Tomcat を用いて Web アプリケーションを開発する環境を構築してみましょう(一覧)*1。 あまり本格的なものは扱いません。 ほぼ最低限の設定のみです。 また、Maven2, Eclipse, Tomcat はそれぞれインストールされているものとします。環…

javax.xml.validation で RELAX NG を使うための POM プロジェクト

前回、Maven2 プロジェクト内で RELAX NG による妥当性検証を行うために必要なライブラリの設定の仕方をみました。ただし、それらを毎回 POM ファイルに書くのは面倒なので、それらの依存性を別の POM プロジェクトに書いて、それを再利用できる用にしましょ…

javax.xml.validation で RELAX NG を使う in Maven2 プロジェクト

RELAX NG を用いて妥当性検証を行うには、幾つかのライブラリを CLASSPATH に含める必要がありました。 必要なのは msv (multi schema validator) とその関連ライブラリ msv isorelax relaxngDatatype xsdlib それに加えて、msv と javax.xml.validation パ…

「アスペクト・ライブラリを作る」への注意

前回までに、アスペクト・ライブラリの作成の仕方を見てきました。 今回は、アスペクト・ライブラリの作成に当たっての注意を1つ。アスペクト・ライブラリの作成方法を書くに当たって参考にしたドキュメントは、AspectJ のコンパイル&織り込みを行うツール…

アスペクト・ライブラリを作る 其ノ参 -- アスペクト・ライブラリを使用する

今回は、前回作成したアスペクト・ライブラリを使用してみましょう。アスペクト・ライブラリを使用するプロジェクトは「greeting-app」とします。pom.xml とりあえず、サンプルを。 <project> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>greeting-app</artifactId> <packaging>jar</packaging> <version>0.1</version> <dependencies> <dependency> <groupId>org.s…</groupid></dependency></dependencies></project>

アスペクト・ライブラリを作る 其ノ弐 -- 「アスペクト・ライブラリ」プロジェクト

今回は、前回のサンプル・ライブラリに対するアスペクト・ライブラリを作成しましょう。 プロジェクト名は「greeting-lib」とします。pom.xml とりあえずサンプルを。 <project> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>greeting-lib</artifactId> <packaging>jar</packaging> <version>0.1</version> <dependencies> <dependency> <groupId>org.sample<…</groupid></dependency></dependencies></project>