感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Antで圧縮、コピー、ファイル転送(FTP)、telbet、バッチ実行するサンプル。

<スポンサーリンク>

O'REILY Ant 第2版が素晴らしい

オライリーのAntの本を買った。
前にApache Antの本を買って読んでいたが、本を読んで概要はわかっても実際にbuild.xmlを作ろうとするとハタと手が止まってしまうことがあった。
なぜかというと、前のApache Antという本にはサンプルが少なく、内容はわかっても実際に使うためのサンプルはググったり自分で考えなければいけなかったからだ。

その点、オライリーは完璧である。
すぐに流用できるサンプルが豊富で、真似するだで十分に仕事に使えてしまう。

昼に買って、一気に読んでしまった。
素晴らしい本だった。

今後の参考のため、動かしてみた機能をメモしておく。

Antでcopyする。

サンプル

	<target name="copy">
		<copy todir="${copy_dir}" >
			<fileset dir="${org_dir}" />
		</copy>
	</target>

こんな風に書けば、orgで設定したディレクトリからcopy先のディレクトリに対してコピーすることができる。

Antでバッチを実行する

	<target name="maven">
		<exec dir="." executable="cmd">
			<arg line="/c maven.bat" />
		</exec>
	</target>

Antから.batファイルを実行するときは、上記のように書く。
中はmaven.batというバッチを叩く定義である。
普通はmavenの中からAntが呼ばれるものだが、あえてAntで

cd projectdir
maven clean install

などと書かれたmaven.batというバッチファイルを実行するには、上のような書き方をする。

Antでzipする

	<target name="zip">
		<zip destfile="${server_dir}/${module_name}.zip" 
			 basedir="${server_dir}/${module_name}"
			 update="true"
		/>
	</target>

Antを使ってzipファイルを作りたい時がある。
圧縮したいときね。
そんなときは、上のような書き方をする。basedirで設定したファイルを、destdirの名前のzipファイルにして出力する。
逆にAntでzipファイルを解凍するには、以下の様な書き方をする。

	<target name="unzip">
		<unzip src="./zip/antzip/${module_name}.zip" dest="./zip/antzip/${module_name}"/>
	</target>

AntでFTPする。

Antを使ってファイルの転送も可能。
以下のように書く。

	<target name="ftp">
		<ftp server="${server_ip}" binary="true" verbose="true"
			userid="${server_user}" password="${server_pass}" remotedir="${remotedir}">
			<fileset file="./zip/antzip/${module_name}.zip" />
		</ftp>
	</target>

転送先IPアドレスやユーザー、パスワードの設定などは上記で見てのとおりである。
AntでFTPするには、Antのlibディレクトリ内にjakarta-oro.jarとcommons-net.jarが置かれている必要がある。

Antでtelnetする

Antはtelnetを実行してリモートサーバ上のシェルを実行することもできる。

	<target name="telnet">
		<telnet server="${server_ip}" userid="${server_user}" password="${server_pass}">
			<read>$</read>
			<write>cd work</write>
			<read>$</read>
			<write>./test.sh</write>
		</telnet>
 	</target>

上のような記述をbuild.xmlに書けばOK。
readで読みこみ。$という記号が出てくるのをまって、writeのコマンドを実行するんだと思う。
expectみたいなものかも。
Antでtelnetをするのは、Antのlibディレクトリにcommons-net.jarが置かれている必要がある。

以上のようにAntのいろんな使い方を勉強することができるのが、オライリーのAnt本。
本当にいい買い物をした。

読んだ本

Ant 第2版

Ant 第2版


この記事に書いた例などこの本の内容の1%に過ぎないので、AntやMavenを使う人は絶対に読んだ方がいいと思う。
1日で読めて、しかも一気に理解が深まる奇跡の本だ。

感謝のプログラミング

今回で感謝のプログラミングは【356時間目】
10000時間まで、あと【9644時間】