Java/Ant/カスタムタスクを作る
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
***カスタムタスクって [#jec18b8a]
Antはすでにある組み込みタスクを使うだけでなく、自分でタス...
***クラスパスを通しておく [#a535aa97]
Eclipseなどで開発するときは、ant.jarをプロジェクトのクラ...
***org.apache.tools.ant.Taskを拡張する [#v1afcca0]
カスタムタスクはorg.apache.tools.ant.Taskクラスを拡張して...
public void execute() throws BuildException;
にoverrideするだけみたいですね。さてサンプルとして、以下...
package nu.mine.kino.ant;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
public class SampleTask extends Task {
private String message;
public void execute() throws BuildException {
System.out.println("エコーしてます: " + message);
}
public String getMessage() {return message;}
public void setMessage(String message) {this.message =...
}
このタスククラスに対応するビルドファイルは以下のようにな...
<taskdef name="sampletask" classname="nu.mine.kino.ant.S...
<target name="sample">
<sampletask message="hogehoge" />
</target>
taskdefでタスクを定義しています。属性の設定内容は以下の通り
-name:タスク名を定義します
-classname:タスククラスを指定します
-classpath:そのクラスが入っているjarをしていします(パスを...
またこのビルドファイルには
<sampletask message="hogehoge" />
というようにmessege属性がありますが、これはタスククラスの...
***ビルドファイルを実行する [#lbff182b]
ビルドファイル(build.xml)全体は以下の通りです。
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="taskdef_sample" default="sample">
<taskdef name="sampletask" classname="nu.mine.kino.ant...
<target name="sample">
<sampletask message="ハローワールド" />
</target>
</project>
さて実行してみます。
Buildfile: T:\workspace3.2_plugin\AntSamples\build.xml
sample:
[sampletask] エコーしてます: ハローワールド
BUILD SUCCESSFUL
Total time: 172 milliseconds
確かにexecuteが実行されました。。
***ネストしたタグを作る [#ccec0ba2]
上の例で、タスクに属性を定義したい場合はタスククラスにSet...
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="taskdef_sample" default="sample">
<taskdef name="sampletask" classname="nu.mine.kino.ant...
<target name="sample">
<sampletask>
<echo message="hoge" />
</sampletask>
</target>
</project>
などのようにしたい場合ですね。
ネストはタスククラスに
public Object create[タグ名]();
を実装すればよいようです。たとえばこんな感じ。
package nu.mine.kino.ant;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
public class SampleTask extends Task {
private Echo echo;
public void execute() throws BuildException {
System.out.println("エコーしてます: " + echo.getMess...
}
public Echo createEcho() { <-createXXXメソッド
if (echo == null) {
echo = new Echo();
}
return echo;
}
}
Echoクラスは以下の通り、通常のJavaBeansです。
package nu.mine.kino.ant;
public class Echo {
private String message;
public String getMessage() {return message;}
public void setMessage(String message) {this.message =...
}
では実行してみます。
Buildfile: T:\workspace3.2_plugin\AntSamples\build.xml
sample:
[sampletask] エコーしてます: hoge
BUILD SUCCESSFUL
Total time: 454 milliseconds
確かにネストしたタグの値を表示することができました。。
***ネストしたタグを複数定義したい [#bf1ae0f3]
たとえば
<fkenabler method="disable">
<table name="hoge" fkname="fuga"/>
<table name="foo" fkname="bar"/>
</fkenabler>
みたいな場合ですね。まあ予想がつくと思いますが、Listを使...
private List<Table> tables = new ArrayList<Table>();
public Table createTable() {
Table table = new Table();
tables.add(table);
return table;
}
ネストタグが一つだろうが複数だろうが、メソッドはcreate[タ...
で、何回もcreate[タグ名]();が呼ばれるので、生成したオブジ...
***関連リンク [#z58fed9e]
-[[サンプルソースのダウンロード(CVS)>http://www.masatom.i...
-[[@IT:Java TIPS -- Antで使う新規タスクにネストした要素...
-[[独自タスクの記述>http://www.jajakarta.org/ant/ant-1.6....
-[[ApplicationContext in Ant Task. - Spring Framework Sup...
-[[ApplicationContext in Ant Task. - Spring Framework Sup...
----
この記事は
#vote(おもしろかった[10],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
***カスタムタスクって [#jec18b8a]
Antはすでにある組み込みタスクを使うだけでなく、自分でタス...
***クラスパスを通しておく [#a535aa97]
Eclipseなどで開発するときは、ant.jarをプロジェクトのクラ...
***org.apache.tools.ant.Taskを拡張する [#v1afcca0]
カスタムタスクはorg.apache.tools.ant.Taskクラスを拡張して...
public void execute() throws BuildException;
にoverrideするだけみたいですね。さてサンプルとして、以下...
package nu.mine.kino.ant;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
public class SampleTask extends Task {
private String message;
public void execute() throws BuildException {
System.out.println("エコーしてます: " + message);
}
public String getMessage() {return message;}
public void setMessage(String message) {this.message =...
}
このタスククラスに対応するビルドファイルは以下のようにな...
<taskdef name="sampletask" classname="nu.mine.kino.ant.S...
<target name="sample">
<sampletask message="hogehoge" />
</target>
taskdefでタスクを定義しています。属性の設定内容は以下の通り
-name:タスク名を定義します
-classname:タスククラスを指定します
-classpath:そのクラスが入っているjarをしていします(パスを...
またこのビルドファイルには
<sampletask message="hogehoge" />
というようにmessege属性がありますが、これはタスククラスの...
***ビルドファイルを実行する [#lbff182b]
ビルドファイル(build.xml)全体は以下の通りです。
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="taskdef_sample" default="sample">
<taskdef name="sampletask" classname="nu.mine.kino.ant...
<target name="sample">
<sampletask message="ハローワールド" />
</target>
</project>
さて実行してみます。
Buildfile: T:\workspace3.2_plugin\AntSamples\build.xml
sample:
[sampletask] エコーしてます: ハローワールド
BUILD SUCCESSFUL
Total time: 172 milliseconds
確かにexecuteが実行されました。。
***ネストしたタグを作る [#ccec0ba2]
上の例で、タスクに属性を定義したい場合はタスククラスにSet...
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="taskdef_sample" default="sample">
<taskdef name="sampletask" classname="nu.mine.kino.ant...
<target name="sample">
<sampletask>
<echo message="hoge" />
</sampletask>
</target>
</project>
などのようにしたい場合ですね。
ネストはタスククラスに
public Object create[タグ名]();
を実装すればよいようです。たとえばこんな感じ。
package nu.mine.kino.ant;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
public class SampleTask extends Task {
private Echo echo;
public void execute() throws BuildException {
System.out.println("エコーしてます: " + echo.getMess...
}
public Echo createEcho() { <-createXXXメソッド
if (echo == null) {
echo = new Echo();
}
return echo;
}
}
Echoクラスは以下の通り、通常のJavaBeansです。
package nu.mine.kino.ant;
public class Echo {
private String message;
public String getMessage() {return message;}
public void setMessage(String message) {this.message =...
}
では実行してみます。
Buildfile: T:\workspace3.2_plugin\AntSamples\build.xml
sample:
[sampletask] エコーしてます: hoge
BUILD SUCCESSFUL
Total time: 454 milliseconds
確かにネストしたタグの値を表示することができました。。
***ネストしたタグを複数定義したい [#bf1ae0f3]
たとえば
<fkenabler method="disable">
<table name="hoge" fkname="fuga"/>
<table name="foo" fkname="bar"/>
</fkenabler>
みたいな場合ですね。まあ予想がつくと思いますが、Listを使...
private List<Table> tables = new ArrayList<Table>();
public Table createTable() {
Table table = new Table();
tables.add(table);
return table;
}
ネストタグが一つだろうが複数だろうが、メソッドはcreate[タ...
で、何回もcreate[タグ名]();が呼ばれるので、生成したオブジ...
***関連リンク [#z58fed9e]
-[[サンプルソースのダウンロード(CVS)>http://www.masatom.i...
-[[@IT:Java TIPS -- Antで使う新規タスクにネストした要素...
-[[独自タスクの記述>http://www.jajakarta.org/ant/ant-1.6....
-[[ApplicationContext in Ant Task. - Spring Framework Sup...
-[[ApplicationContext in Ant Task. - Spring Framework Sup...
----
この記事は
#vote(おもしろかった[10],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: