質問
新しいプロジェクトを作成するたびに、最後のプロジェクトの ant ファイルを新しいプロジェクトにコピーし、適切な変更を加えます (同時に、次のプロジェクトでより柔軟になるように試みます)。しかし、最初は特に考えていなかったので、ファイルの見た目が非常に醜くなりました。
新しいプロジェクトに簡単に移植できる Ant テンプレートはありますか?作るためのヒントやサイトはありますか?
ありがとう。
解決
テンプレートを作成する代わりに、現在のプロジェクトの Ant スクリプトを徐々に一般化してテンプレートを進化させ、次回新しいプロジェクトで使用するためにコピーするときに加える変更が少なくなるようにすることもできます。できることはいくつかあります。
ファイル名に ${ant.project.name} を使用すると、プロジェクト要素でアプリケーション名のみを指定する必要があります。たとえば、myapp.jar を生成するとします。
<project name="myapp">
...
<target name="jar">
...
<jar jarfile="${ant.project.name}.jar" ...
個々のファイルに名前を付けるのではなく、ディレクトリ全体をコピーすることでビルドをパッケージ化できるように、ソース ディレクトリ構造を構造化します。たとえば、JAR ファイルを Web アプリケーション アーカイブにコピーする場合は、次のような操作を行います。
<copy todir="${war}/WEB-INF/lib" flatten="true">
<fileset dir="lib" includes="**/*.jar">
</copy>
マシン固有およびプロジェクト固有のビルド ファイル プロパティにはプロパティ ファイルを使用します。
<!-- Machine-specific property over-rides -->
<property file="/etc/ant/build.properties" />
<!-- Project-specific property over-rides -->
<property file="build.properties" />
<!-- Default property values, used if not specified in properties files -->
<property name="jboss.home" value="/usr/share/jboss" />
...
Ant プロパティは一度設定すると変更できないため、新しい値を定義して値をオーバーライドすることに注意してください。 前に デフォルト値。
他のヒント
与えることができます http://import-ant.sourceforge.net/ 試してみてください。これは、単純なカスタム ビルド ファイルの作成に使用できるビルド ファイル スニペットのセットです。
私も同じ問題を抱えており、テンプレートを一般化し、独自のプロジェクトに成長させました。 アンチプレート. 。もしかしたらあなたにも役立つかもしれません。
同様のディレクトリ構造を持つ複数のプロジェクトに取り組んでいて、Maven を使用する代わりに Ant を使い続けたい場合は、 インポートタスク. 。これにより、テンプレートをインポートして変数 (クラスパス、依存関係など) を定義するだけで、プロジェクトのビルド ファイルを作成でき、すべての 本物 インポートされたテンプレートでスクリプトをビルドします。テンプレート内のタスクをオーバーライドすることもできるため、プロジェクト固有のターゲットの事前フックまたは事後フックを追加できます。
私も全く同じことをしていました…。それから私はに切り替えました メイブン. 。Maven は、単純な XML ファイルを使用してビルドを構成し、単純なリポジトリを使用してビルドの依存関係を管理します (これらの依存関係をコードを使用してソース管理システムにチェックインするのではなく)。
私が本当に気に入っている機能の 1 つは、jar のバージョン管理が簡単であることです。つまり、ライブラリのレガシー ユーザーが以前のバージョンを簡単に利用できるようにしておきます。これは、junit など、使用するライブラリをアップグレードする場合にも役立ちます。これらの依存関係は、Maven リポジトリに個別のファイル (バージョン情報とともに) として保存されるため、コードの古いバージョンでは、特定の依存関係を常に利用できます。
それはより良いアリです。
私も全く同じことをしていました…。それから私はMavenに切り替えました。
ああ、Maven 2 ですね。今でも真剣に Maven を使っている人がいるのではないかと心配していました。冗談はさておき:Maven 2 に切り替える場合は、情報を探す際に注意する必要があります。Maven 2 は Maven を完全に再実装したものであり、基本的な設計上の決定がいくつか変更されているためです。残念ながら、彼らは名前を変更しませんでした。これは過去に大きな混乱の原因でした(Web の「記憶」の性質を考慮すると、今でも時々混乱が生じます)。
Ant の精神を維持したい場合にできるもう 1 つのことは、次のようにすることです。 アイビー 依存関係を管理します。
注意すべき点が 1 つあります。Eclipse を使用している場合は、ant4eclipse タスクを確認してください。私は、Eclipse で設定された詳細 (ソース ディレクトリ、依存関係プロジェクトを含むビルド パス、ビルド順序など) を要求する単一のビルド スクリプトを使用します。
これにより、依存関係を 1 か所 (Eclipse) で管理しながら、コマンドライン ビルドを使用して自動化することができます。