ApacheAnt / 1.6.0 / ChangeLog


互換性のない変更

  • このバージョンでは、JDK 1.1 でのビルドおよび実行はできません。Java 1.2 以上が必要となります。コンパイル時に、1.1 をターゲットとすることは今もなおサポートされています。
  • ターゲットは、もはや空の名前を持つことはありません。
  • 今後は、ant.jar のマニフェストから Class-Path エントリがなくなります。これにより、"java -jar ant.jar" のように実行するために、CLASSPATH を手動で設定する必要があります。代わりに ant-bootstrap.jar が、バイナリディストリビューションの etc ディレクトリに含まれています。この jar を lib ディレクトリにコピーして、"java -jar ant-bootstrap.jar" を実行すれば、ラッパースクリプトなしで Ant を実行できます(お勧めはしません)。
  • Script タスクは、古い IBM 版の代わりに Apache BSF を必要とします。See: <http://jakarta.apache.org/bsf/>
  • Xmlproperty タスクは、存在しないファイルをロードしようとしても処理に失敗することはなくなります。
  • XML ネームスペースを XML パーザで有効にしました。これによって、XML ネームスペース宣言が(ビルドファイル内に)あってもエラーになることはありません。しかしながら、タスクの名前にコロンが含まれていると、ネームスペースURIとして扱われることによりエラーになります。
  • Ftp と Telnet タスクは、古い ORO NetComponents の代わりに Jakarta Commons Net を必要とします。See: <http://jakarta.apache.org/commons/net/index.html>
  • Input タスクは、addproperty 属性が設定されているときにプロンプトを出してユーザの入力を待つことをしないでしょう。もし、入力を待つようにしたいときは、addproperty 属性を使用しないでください。
  • マニフェストの Class-Path 属性は、見つかったすべてのエントリを結合することはありませんが、すべて異なるマニフェストの属性として扱われます。結果、最も新しい属性が使われます。
  • 新しい起動の仕組みを実装しました。これによりいくつかの機能をバッチファイル/シェルスクリプトから Java のほうに移動します。これは、環境による制限(コマンドによる問題や Windows のディレクトリの深さによる問題)を削除します。また、Ant のインストール先が固定されていても、ユーザごとのライブラリの置き場所が使われます。
  • PropertyFile タスクのネストした Entry 要素は、value 属性が、(実際は増分が入っているのに)実行後にエントリの新しい値で上書きされることはもはやないでしょう。
  • Java 及び Exec タスクからの出力は生成されたままの状態で完全に保存されます。プラットフォーム固有の改行文字への変換はしません。
  • Translate タスクは、改行コードを失いません。
  • FTP タスクでネストした Fileset が定義されている場合、(get, chmod, delete, rmdir するときに)リモートのシンボリックリンクを除くため followsymlinks 属性を "false" にする必要があります。
  • Copy#fileCopyMap フィールドの型が String から String[] に変わりました(Java 1.5 の記法にのっとると Hashtable<String, String> から Hashtable<String, String[]> に変わった)。この変更は、サードパーティのコードで Copy を拡張し、Copy#doFileOperations をオーバーライドしていると影響します。
  • Loadproperties タスクは、Property タスクの file属性で指定したのと同じようにプロパティを展開しませんでした。これを修正したことによって、ExpandProperties FilterReader を使った場合に、プロパティを2度展開するかもしれないことを意味します。
  • User defined tasks and typedefs are now handled internally in the same way as predefined tasks and typedefs. Also tasks and typedefs are resolved at a later stage. This causes some differences especially for user defined task containers.
  • Checksum タスクのログメッセージ "Calculating checksum ..." が INFO から VERBOSE にログの優先レベルが落ちました。

バグフィックス

  • FilterReader は、改行文字を適当に処理を行わないようになります。Bugzilla:18476
  • Filterset もまた、改行文字を適当に処理したりしません。
  • Expand タスクは、PatternSet に関して望んだとおりの動作をしていませんでした。(参考: Bugzilla:20969)
  • Property タスクの environment 属性が、OS/400 でも動作するようになりました。
  • Cab タスクで、でかい Fileset を指定していると Listcab がハングアップしていました。(参考: Bugzilla:13546)
  • Starteam の Stcheckout, Stcheckin タスクは、見つかったローカルツリーならなんでもファイルのステータスを正確に計算します。それがもし最新であれば任意で処理しません。以前は、デフォルトフォルダが見つからなかった場合は、すべてを処理しなければなりませんでした。同様に、Stlist タスクは、そのステータスを正確により一般的に有用なツールになるように表示します。(訳注: 自信なし)
  • パス名に空白が含まれている場合に、エンティティを含んでいると例外を引き起こしていました。(参考: Bugzilla:13679)
  • addConfiguredXXX めそっどは、タスクがTaskAdapterでラップされている場合に動作しませんでした。(参考: Bugzilla:20499)
  • Ilasm タスクで、出力するファイルは最初から存在する必要もないため、outputfile 属性のチェック方法を修正しました。(参考: Bugzilla:15568)
  • Ant は、コマンドライン引数に問題があったときに、リターンコードとして 1 を返すようになりました。(参考: Bugzilla:16123)
  • クラスローダの生成を Project クラス内のファクトリメソッドで行うように変更しました。新しい AntClassLoader2 クラスは、1.2 以上のために、パッケージ情報や Jar のマニフェスト内の Class-Path 要素で定義される追加クラスを含む特定のフィーチャを実装しました。(参考: Bugzilla:11196)
  • Exec タスクで、実行するコマンドを探し出すときにプロジェクトのベースディレクトリや実行するディレクトリからも相対的に検索することが可能になりました。resolveExecutable 属性は、このように検索することを選択するために使われます。(参考: Bugzilla:16040)
  • スプラッシュスクリーンがビルド終了時にも表示したままになっていました。
  • Exec タスクの出力およびエラー出力は、プロパティかファイル(またはその両方)により独立してリダイレクトされるようになります。(参考: Bugzilla:7330)
  • TarEntry クラスの File を引数にとるコンストラクタは、os.name が7文字より少ないすべてOSで StringIndexOutOfBoundsException により失敗していました。Bugzilla:18105
  • Copy と Move タスクの failonerror 属性は、Fileset が存在しないディレクトリを指していると動作しませんでした。Bugzilla:18105
  • StripJavaComments フィルタは、たまに文字列の一部を削除してしまっていました。Bugzilla:17441
  • Antlr タスクは、上位の文法が変更されたときに、処理中の文法を再コンパイルします。Bugzilla:12961
  • env 要素は、Unix系OSで /usr/bin/env の変わりに /bin/env で動作します。Bugzilla:17642
  • Jar タスクの index 属性を on にしたときに、複数のインデックスリストを含んでいました。Bugzilla:10262
  • Jar タスクのインデックス生成は、最上位のエントリを含んでおらず仕様どおりに動いていませんでした。Bugzilla:16972
  • Tar 及び Zip タスクは、暗黙のファイルセットへの defaultexcludes 属性の指定が機能していませんでした。Bugzilla:18637
  • Replacetoken フィルタは、トークンの値が空文字列であった場合に例外がスローされていました。Bugzilla:18625
  • サーバからの出力をあてにしている P4Change や P4Label のような Perforce のタスクは、ハングしていました。Bugzilla:18129, Bugzilla:18956
  • Perfoces タスク達の例外のスローやログ出力の仕方が向上しました。Bugzilla:18154
  • build.sh は、Cygwin上(かつ REALANTHOME を使っているとき)でインストール時に問題がありました。Bugzilla:17257
  • Replaceregexp は、byline 属性が false のときマルチバイトなエンコーディングであると動作しませんでした。Bugzilla:19187
  • Replaceregexp タスクは、処理しているファイルが含まれるディレクトリのタイムスタンプを不必要にも変更してしました。Bugzilla:22541
  • 空白を含むファイル名は、(すべてのJDKで)Javac タスクをフォークして使っているときに、@argfile 引数の内部でクオートすることが必要です。Bugzilla:10499。注意: 最初の修正は、ただJDK1.4のためにクオートすることを導入しました。これは、パスにスペースが含まれているときのためにすべての外部コンパイラ用にもクオートするように変更されました。また、バックスラッシュは、スラッシュに変換することが必要でした。Bugzilla:17683
  • Zipタスクとその仲間達は、filesonly 属性が true にセットされていると常にアーカイブを再生成していました。Bugzilla:19449
  • JavaDoc タスクをJDK1.4で利用するときに、@argfile 引数内部でファイル名にスペースが含まれる場合は、クオートすることが必要でした。Bugzilla:16871
  • Junit タスクは、タイムアウトしたときにユーザ定義のクラスパスにカスタムフォーマッタがあると動作しませんでした。Bugzilla:19953
  • Different セレクタ: ignoreFileTimes 属性は、デフォルト値がtrueになります。それと、タイムスタンプの比較に関するバグを修正しました。Bugzilla:20205
  • Defferent セレクタは、Fileset 直下に置けるようになりました。Bugzilla:20220
  • CvsTagDiff タスクは、"dd-MM-yy hh:mm:ss" フォーマントに関する問題がありました。Bugzilla:15995
  • CvsTagDiff タスクの cvsroot と package 属性は、XML出力時の tagdiff ルート要素に加えられます。Bugzilla:16081
  • FixCRLF タスクは、テンポラリファイルを出力先のディレクトリではなく、FileUtils#createTempFile のデフォルトディレクトリに作るようになります。Bugzilla:20870
  • Ejbjar タスクの Borland向け実装に関して。java2iiop からのエラーメッセージによって処理がブロックされるのを防止します。Bugzilla:19385
  • Unzip と Untar タスクにネストした Patternset でパターンの最後がスラッシュかバックスラッシュで終わっている場合に、ドキュメントどおりに動きませんでした。Bugzilla:20969
  • FixCRLF タスクは、必要な場合だけ出力ファイルの親ディレクトリを生成します。Bugzilla:20840
  • XmlProperty タスクは、CDATAセクションも処理するようになりました。Bugzilla:17195
  • Traslate タスクは、トークンが接近して置かれていても解釈するようになりました。Bugzilla:17297
  • EJbjar タスクのネストした WebSphere要素は、空白が含まれるファイル名をサポートしていませんでした。Bugzilla:21298
  • JAR を更新するときに、Class-Path 属性が増えたりはしません。Bugzilla:21170
  • PropertyFile タスクのネストした Entry要素の (インクリメントするときの)value 属性は、上書きされないようになります。Bugzilla:21505
  • Junit タスクで、キーまたは値の指定のない Systproperties 要素を追加しようとするのをさえぎるようになります。Bugzilla:21684
  • 参照は、AntCall タスク経由で適切に継承されます。Bugzilla:21724
  • FTP タスクでリモートシステムが UNIX かつローカルシステムが Windows の場合に chmod が失敗していました。Bugzilla:21865
  • FTP タスクでリモートシステムが UNIX かつローカルシステムが Windows の場合に chmod も行う put が失敗していました。Bugzilla Reports Bugzilla:23143
  • FTP タスクは、FTP サーバがデフォルトでバイナリモードのときに問題が起こるので、当然のようにアスキーモードをセットしません。
  • FTP タスクは、対象がシンボリックリンクだったときは、ファイルのダウンロードができませんでした。Bugzilla Reports Bugzilla:1403
  • FTP タスクは、対象がシンボリックリンクのディレクトリの場合でもダウンロードできるようになります。
  • Replace タスクは、Windows 環境の時に ?r?n を ?r?r?n と変換していました。
  • JUnitReport タスクでフレームを使っていた場合に、パッケージがないかトップパッケージ内のクラスへのリンクが表示できていませんでした。Bugzilla:1403
  • Project#toBoolean(String) は引数にnullが渡されても処理します。そして、これからは NullPointerException をスローしません。
  • Socket 条件は、テスト用に生成したソケットをクローズしていませんでした。Bugzilla:14063
  • JUnit タスクで includeantruntime = "true" fork = "true" の場合に、CLASSPATH を追加するのではなく置き換えていました。Bugzilla:14971
  • Splash タスクで、システムクラスローダを必要とするときに null を返すJVM上では失敗していました。Bugzilla:23320
  • XmlCatalog 要素は、タスクの内側で定義されたときのみ動作していました。Bugzilla:20965
  • <csc> and siblings (<vbc> <jsharpc>) handle large filesets by automatic use of response files. Bugzilla:19630

その他の変更

  • 添付の XML Parser が、Xerces 2.6.0 になってます。
  • すべてのタスクは、Target の外で使うことができます。注意: 幾つかのタスクは、無限ループを引き起こしターゲットの外側ではまったく動作しないでしょう(AntCall や Ant, SubAnt タスクで今処理中のビルドファイルを呼び出した場合)。
  • 6つの新しい Clearcase 用のタスクが追加されました。
  • 新しい FilterReader である Tokenfilter が追加されました。Bugzilla:18312
  • TailFilter と HeadFilter に新しい属性 skip が追加されました。
  • Jar タスクの filesetmanifest 属性が再び有効になりました。
  • Translate タスクの開始・終了トークンは、単一の文字である必要はなくなりました。
  • SetProxy タスクは、プロキシを使うときの認証用に username と passowrd を設定できるようになります。
  • LoadProperties タスクに、encoding 属性が追加されました。
  • EchoProperties タスクは、XML出力を生成できるようになりました。
  • EchoProperties タスクに srcfile 属性ができました。これは、Ant のプロパティの代わりにこの属性で指定されたプロパティファイルを読み込んで出力します。
  • Filterset は、再帰的にフィルタを解決します。(参考: Bugzilla:9378)
  • Input タスクに新しい属性ができました(訳注: defaultvalue 属性)。これは、デフォルトの値を定義することができます。
  • Image タスクが追加されました(JAI が必要)。
  • Image タスクは、ネストした Scale 要素に、keepproportions の代わりに(より多くの機能を持った)proportions 属性ができました。
  • 新しい条件 IsReference ができました。
  • Ftp タスクは、ダウンロードしてきたファイルのタイムスタンプを維持するために、preservelastmodifed 属性ができました。
  • Ftp タスクに新しく、ファイルセットで指定されたディレクトリを削除する rmdir アクションができました。
  • Ftp タスクは、クライアント側とリモート側の間の時間差の情報を Ant に指示するために、timediffauto と timediffmillis 属性ができました。これらは、同時に利用します。Bugzilla:18312
  • Ftp タスクは、含まれるパターンに直接行くように最適化されました。これは、(デフォルトの)followsymlinks が "true" 且つ casesensitive が "true" であるときの Unix環境下における操作時間を削減します。Bugzilla:20103
  • SOS 及び VSS 関連のタスクで、vsspath や projectpath に $ を先頭に無条件に付けることはありません。
  • OS 条件によって、OS/400 を処理することができます。
  • Arg 要素の新しい pathref 属性によって、以前に定義した Path を参照して使うことができるようになります。
  • XmlProperty タスクは、以下のように向上しました。XMLファイル内で、${プロパティ} を展開でき、id や path を定義でき、ファイル名解決に Ant の仕組みを利用することができます。
  • XmlCatelog タスクは、OASIS の "Open Catalog" 標準に従って、外部のカタログをサポートします。このために、Apache の xml-commons から (1.0 より新しい)resolver.jarがクラスパス中にあることが条件です。
  • Starteam 関連のタスクは、リビジョンラベルとビルドラベルをサポートします。チェックアウト時に、現在時刻の代わりにリポジトリのタイムスタンプを利用するオプションができました。
  • 新しいタスク Symlink は、シンボリックリンクを作成、維持します。
  • 新しいタスク Chown と Chgrp は、同名の Unix コマンドのラッパーです。
  • 新しいタスク Attrib は、Windows システム上においてファイルの属性を変更します。
  • Style タスクに、広く知られている Xalan のバグに対応するために reloadstylesheet 属性を新しく追加しました。
  • Tarfileset は、新しい dirmode 属性によってディレクトリのアクセス件を定義できます。
  • FixCRLF タスクの eol 属性は、新しく "mac", "unix", "doc" を受け付けます。
  • ClassFileset は、MyClass.class 形式の依存関係を取得します。これは、Sun の Java コンパイラで生成されたコードで動作します。すべてのコンパイラで動作するとは限りません。
  • すべての Perforce 関連のタスクに、新しい属性 globalopts が追加されました。これによって、p4 のヘルプの使い方にある表現をすべて文字列として指定することができます。詳細は、p4 のドキュメントを参照してください。
  • 新しい Perforce 向けのタスク、P4integrate, P4resolve, P4labelsync が追加されました。
  • P4submit タスクは、Perforce サーバが、チェンジリストの付け替えをした場合に、p4.change プロパティを変更します。タスクは、サブミットに失敗したり、ファイルの解決が必要であるというメッセージがきた場合に p4.needsresolve プロパティをセットします。
  • Replaceregexp タスクは、プラットフォームデフォルトとは違うエンコーディングのファイルの置換をサポートするために、任意指定の属性 encoding ができました。
  • Exec タスクは、ビルドファイルで指定した文字列かファイルを入力にリダイレクトするようになります。エラー出力は、出力がリダイレクトされていても違うファイルに分離することができます。標準エラーは、ファイルにリダイレクトされたときでもAntのログに書かれるかもしれません。
  • Java タスクもまた、Exec タスクで紹介したように入力のリダイレクトやエラーストリームの分離をサポートします。加えて、Exec タスクが 1.5 から可能だった、出力をビルドファイル内で使えるようにプロパティに保存することが可能になりました。
  • Javadoc タスクのサブ要素 Tag は、使われるタグのマッピング情報をファイルでできるように拡張されました。
  • 新しいタスク: Scp タスクは、ファイル転送をサポートします。Sshexec タスクは、SSH 上でコマンドを実行します。これらには、http://www.jcraft.com/jsch/index.html にある BSD ライセンスの SSH ライブラリ jsch が必要です。
  • 新しい FilterReader の Escapeunicode ができました。
  • HP の NonStop Kernel(Tandem) OS へのサポートを追加しました。
  • Cab タスクの basedir 属性は、ネストした Fileset 要素が定義してある場合は、必須ではなくなりました。Bugzilla:18046
  • 新しい Sync タスクは、2つのディレクトリツリーの同期をとります。
  • Apply タスクは、プラットフォームのファイル区切り子がフォワードスラッシュ(/) と異なっていたとしても、ファイル名を強制的にフォワードスラッシュにする forwardslash 属性ができました。これは、ある種の移植されたUnixツールで動作させたいときに有用です。
  • Copy タスクに outputencoding 属性ができました。これは、コピー中のファイルのエンコーディングを変更したいときに使われます。Bugzilla:18217
  • JUnit用のXMLフォーマッタは、テストケースの名前をsetNameで設定されたものを優先します。Bugzilla:17040
  • JUnit タスクに reloading 属性ができました。これをfalseにすると、一連のテストのために、タスクと同じクラスローダを再利用します。
  • Concat タスクは、フィルタ処理をサポートします。また、ファイルを上書きする前にタイムスタンプをチェックします。Bugzilla:18166
  • JUnit タスクは新しく、一時ファイルの置く場所を制御するための tempdir 属性ができました。Bugzilla:15454
  • JDepend タスクは、新しくネストした要素 Classespath ができました。これは、Scourcespath 要素と同じようなものでコンパイルされたクラスを示します(この操作には、JDepend のバージョンは 2.5 以上が好ましい)。
  • 加えて、ネストした Exclude 要素は、解析対象からあるパッケージを除くために利用することができます。Bugzilla:17134
  • JProbe 関連のタスクは、JProbe 4.x で動作するようになりました。Bugzilla:14849
  • JavaCC 及び JJTree タスクは、JavaCC 3.x を自動判別して、それを使うことができるようになりました。
  • Sql タスクは、エスケープ処理を制御する新しい属性(訳注: escapeprocessing のこと)ができました。
  • Sql タスクは、複数のSQL文を実行しても、正しく複数の結果セットを表示することができます。
  • 新しい Containsregexp セレクタが追加されました。このセレクタは、指定した正規表現にマッチする内容を含むファイルを選択します。
  • Antlr タスクで debug 属性が有効になりました。Bugzilla:19051
  • Mail タスクに新しく charset 属性ができました。Bugzilla:15434
  • Mail タスクは、SMTP認証のために、新しく user と password 属性ができました。maillogger もまたこれを使うことができます。この実装は、JavaMail(encoding="MIME") でのみ動作します。プレーンメールでの実装は、残されています。Bugzilla:5969
  • Mail タスクと maillogger は、TLS/SSL 上の SMTP をサポートします。Bugzilla:19180
  • Mail タスクの from, relpyto, tolist, cclist, bcclist 属性は、以下の形式のメールアドレスを持つことができます。<address@xyz.com> か (name) address@xyz.com Bugzilla:22474
  • Mail タスクは、(プレーンメールのとき)空のヘッダが送られるのを防ぎ、プレーンメールメッセージのヘッダの順序を予測可能なものにします。Bugzilla:22088
  • Zipfileset は、プロジェクト直下に定義することが可能になりました。そして、refid = "xyz" のように参照することができます。Bugzilla:17007
  • OS/2 用のラッパースクリプトが追加されました。
  • Unzip タスクは、自己展開アーカイブを認識し、うまく展開することができます。Bugzilla:16213
  • Stcheckout タスクは、新しい converteol 属性ができました。これは、ASCII ファイルを処理するときに自動的に行末文字を変換する処理を制御するのに使われます。Bugzilla:18884
  • ユーザは、デフォルト除外集合を新しい DefaultExcludes タスクを使って修正することができます。Bugzilla:12700
  • 新しいデータ構造 PropertySet は、プロパティを集めるために使うことができます。これは、Ant, AntCall, Subant, Java, EchoProperties 及び JUnit でサポートされています。
  • Concat タスクは、出力するエンコーディングを制御することができます。その上、任意で連結したファイルの最後に改行文字がないときに、改行文字を最後に追加することができます。Bugzilla:12511
  • Rpm タスクは、RedHat 8.0 かそれ以上で生成された rpm を認識します。Bugzilla:14650
  • 新しく Rexec タスクが追加されました。このタスクの動作には、Commons Net が必要です。Bugzilla:19541
  • Javadoc タスクは、additionalparams 属性に加えてネストした Arg 要素をサポートします。
  • Tag 要素によって、Javadoc タスク内の標準タグの順序を決定することができます。そのため、この目的のために description 属性を使ってはならない。Bugzilla:18912。Javadoc タスクは、-noqualifier スイッチをサポートするようになりました。Bugzilla:19288
  • Javac タスクの executable 属性は、jikes, jvc, sj や gcj の実行可能なパスを定義するために使用するために使用することも可能になりました。Bugzilla:13814
  • Javac タスクは新しく、一時ファイルの置く場所を制御するための tempdir 属性ができました。Bugzilla:19765
  • 新しいマジックプロパティ build.compiler.jvc.extensions が追加されました。これは、jvc コンパイラを使っているときの、マイクロソフト拡張機能の切替に利用することができます。Bugzilla:19826
  • 新しい属性 maxparallel を利用することによって、Apply 及び Chmod タスクで並行処理時に制限をかけることができます。参考 Bugzilla:17640
  • 新しくできた addsourcefile 属性とともに Apply タスクを使うことでコマンドラインからソースファイル名を省略させることができます。
  • Apply 及び Chmod タスクは、ネストした Filelist と Dirset 要素をサポートします。Bugzilla:15929, Bugzilla:20687
  • Apply 及び Chmod タスクは、新しくできた verbose 属性を true に設定することで、概要を表示するようになります。Bugzilla:19883
  • Copy/Move タスクの failonerror 属性は、I/O エラーが起こったとしてもビルドを継続するように使うこともできるようになりました。Bugzilla:12999
  • 新しい Type セレクタは、ファイルのみやディレクトリのみといった選択をすることができます。Bugzilla:20222
  • Java 及び JUnit タスクは、ネストした BootClasspath 要素をサポートします。これは、新しい VM にフォークされていない場合は、無視されるでしょう。
  • JUnit タスクのネストした Formatter 要素は、if/unless 節をサポートするようになりました。
  • Ejbjar タスクの cmpversion 属性は、Jboss 要素が cmpversion = "2.0" と設定されているときに jbosscmp-jdbc.xml ディスクプリタを探すようにするために付け加えられました。Bugzilla:14707, Bugzilla:14709
  • Pvcs タスクに、独特なPVCS の .cfg ファイルのパスを設定するための config 属性が追加されました。
  • Mapper に、unpackage Mapper ができました。Bugzilla:18908
  • 何かしらの BSF をサポートしたスクリプト言語を使ってタスクを定義できるようにする Scriptdef タスクが追加されました。
  • Touch タスクの datetime 属性は、秒単位の制度で時間を受け付けることができます。Bugzilla:21014
  • Checksum タスクに2つの属性が加わりました: totalproperty と todir
  • FileUtils#createTempFile メソッドは、java.io.tmpdir プロパティによって指定されたディレクトリに一時ファイルを生成するようになりました。
  • Unzip とそのお友達タスクは、任意指定の encoding 属性をサポートします。これは、UTF-8 以外のエンコーディングを使ってファイル名を生成したアーカイブの展開を可能にします。Bugzilla:10504
  • Patch タスクに、新しく destfile 属性ができました。これは、同じファイルにパッチしたファイルを作らずに、新しくファイルを生成するのに使われます。
  • OpenVMS は、有効な OS ファミリとして認識されます。
  • DirecotryScanner は、ワイルドカードで始まらないパターンが含まれているときのために、最適化されました。Bugzilla:20103
  • DirectoryScanner は、除外したディレクトリを走査しないように最適化され始めました。Bugzilla:21941
  • keep-going フィーチャが追加されました(訳注: 簡単に言うと、BuildException がでてもいけるところまで突き進むモード。エラーがでたターゲットに依存していないターゲットをすべて実行してくれる。-keep-going と起動時に指定する。)。Bugzilla:21144
  • Zip 及びその仲間達タスクで生成されたアーカイブは、CRC やサイズ情報を "ローカルファイルヘッダ"内に含むようになりました。そのため、java.util.ZipInputStream を使ってアーカイブを読み込んだアプリケーションにこの情報を与えられます。Bugzilla:19195
  • Copy 及び Move タスクは、ソースパスに対して複数のマッピングを返す Mapper を扱うことができます。この動作は、enablemultiplemapping 属性を使うことによって可能となります。Bugzilla:21320
  • Exec タスクは、OpenVMS 上でも動作するようになりました(Exec タスクのマニュアルの注意書きを読むようにしてください)。Bugzilla:21877
  • Exec タスクは、新しく spawn 属性(デフォルトで false)ができました。true に設定すると、そのプロセスはスポーンされます(訳注: Ant から独立して動作すること)。Bugzilla:5907
  • Java タスクは、新しく spawn 属性(デフォルトで false)ができました。true に設定すると、そのプロセスはスポーンされます(訳注: Ant から独立して動作すること)。Bugzilla:5907
  • Parallel タスクは、並列に動いているスレッドの中で、デッドロック等から回復するために、timeout 属性をサポートします。Parallel タスクはまた、ネストした Deamons 要素をサポートします。これは、Parallel タスクが処理完了を待たずにデーモンスレッド内でタスクを動作させるのために使われます。新しい属性 failonany は、何らかのスレッドが失敗した場合に、他のすべてのスレッドが処理完了するのを待たずに例外をスローするようにします。
  • Zip とその仲間達タスクは、compress 属性を false にして実行したときに、以前よりも全然少ないメモリ使用量で動作するでしょう。Bugzilla:21899
  • Style タスクのネストした Param 要素に if 及び unless 属性が追加されました。Bugzilla:22044
  • Zip 及びその仲間達タスクに、新しく keepcompression 属性ができました。これは、追記的に、圧縮されたエントリと圧縮されていないエントリが混ざったアーカイブが作られるときに使われます。
  • JUnit タスクの XML フォーマッタは、TestCase 要素の新しい classname 属性を使って追加できます。
  • 新しく Permissions データ構造が追加されました。これは、Java 及び JUnit タスクにネストして定義でき、コードでパーミッションを扱うことができます。Bugzilla:22533
  • Ant のオプションの短い形式が追加されました(-d -> -debug, -e -> -emacs, -h -> -help, -p -> projecthelp, -s -> -find)。
  • 新しい Modified セレクタができました。Cache は、Modified に名前が変更になりました。Bugzilla:20474
  • Stcheckout 及び Stlist タスクに、新しく asofdate 属性ができました。これは、ラベルの代わりに日付に基づいてファイルを チェックアウト/リストするために使われます。Bugzilla:20578
  • 新しく ConcatFilter ができました。ファイルの先頭か最後にコンテンツを追加します。これに関する議論は、http://marc.theaimsgroup.com/?l=ant-user&m=106366791228585&w=2 で始まりました。
  • 新しいタスク Import が追加されました。
  • 新しいタスク Macrodef が追加されました。
  • 新しいタスク Presetdef が追加されました。
  • Ant のライブラリは、カスタムタスクとの(タスクの)名前の衝突を避けるために、ネームスペースを使って利用できます。

b2 からリリースにかけて消えたもの

未確認のため保留。

  • Java 及び JUnit タスクは、ネストした Assertions 要素をサポートします。この要素は、Java1.4 のアサーションをパッケージかクラス単位で有効/無効にすることができます。これは現在、fork 属性が true のときのみ動作します。
  • .NET タスク群は、VB をサポートする Vbc 及び Jsharp による J#、Importtypelib、Ilasm によって拡張されました。Csc タスクは、ネストした Src データ構造や(条件付の可能性のある)定義をするための Defines 要素、参照するための Fileset であるReference 要素をサポートします。executable 属性は、Mono かそれ以外の実装を切り替えることができるようにします。Csc タスクは、Linux 及び OSX 上の Mono でテストされています。