新しいプロジェクトを作成するたびに、最後のプロジェクトのantファイルを新しいプロジェクトにコピーし、適切な変更を加えます(同時に、次のプロジェクトでより柔軟になるようにします)。しかし、最初はあまり考えていなかったので、ファイルは本当に醜く見え始めました。
新しいプロジェクトに簡単に移植できるAntテンプレートはありますか?1つを作るためのヒント/サイトはありますか?
ありがとうございました。
テンプレートを作成する代わりに、現在のプロジェクトの Ant スクリプトを徐々に一般化することでテンプレートを進化させて、次に新しいプロジェクトで使用するためにコピーするときに行う変更が少なくなるようにすることもできます。できることはいくつかあります。
ファイル名に ${ant.project.name} を使用すると、 project 要素でアプリケーション名を指定するだけで済みます。たとえば、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/を試してみることができます。これは、単純なカスタムビルドファイルを作成するために使用できるビルドファイルスニペットのセットです。
私は同じ問題を抱えていて、テンプレートを一般化し、それらを独自のプロジェクトAntiplateに成長させました。多分それはあなたにとっても役に立ちます。
同様のディレクトリ構造を持つ複数のプロジェクトに取り組んでいて、Maven ではなく Ant を使用したい場合は、Import タスクを使用します。これにより、プロジェクト ビルド ファイルにテンプレートをインポートして変数 (クラスパス、依存関係など) を定義し、インポートしたテンプレートで実際のビルド スクリプトをすべてオフにすることができます。テンプレート内のタスクをオーバーライドして、プロジェクト固有のプレまたはポスト ターゲット フックを配置することもできます。
私はまったく同じことをしていました....それからmavenに切り替えました。Maven は、単純な xml ファイルを使用してビルドを構成し、単純なリポジトリを使用してビルドの依存関係を管理します (これらの依存関係をコードでソース管理システムにチェックするのではなく)。
私が本当に気に入っている機能の 1 つは、jar のバージョン管理がいかに簡単かということです。以前のバージョンをライブラリのレガシー ユーザーが利用できるように簡単に維持できます。これは、使用しているライブラリ (junit など) をアップグレードする場合にも役立ちます。これらの依存関係は別のファイルとして (バージョン情報と共に) Maven リポジトリに保存されるため、古いバージョンのコードでは常に特定の依存関係が利用可能です。
それはより良い蟻です。
私はまったく同じことをしていました....そして、mavenに切り替えました。
ああ、Maven 2 です。最近でも誰かが真剣に Maven を使っているのではないかと心配していました。冗談はさておき: Maven 2 に切り替える場合は、情報を探す際に注意が必要です。Maven 2 は Maven の完全な再実装であり、いくつかの基本的な設計上の決定が変更されているためです。残念ながら、彼らは名前を変更しませんでした。これは、過去に大きな混乱の原因となっていました (そして、Web の「記憶」の性質を考えると、今でも変更されることがあります)。
Ant の精神にとどまりたい場合にできるもう 1 つの方法は、Ivyを使用して依存関係を管理することです。
注目すべき点が 1 つあります。Eclipse を使用している場合は、ant4eclipse タスクを確認してください。私は、Eclipse で設定された詳細 (ソース ディレクトリ、依存プロジェクトを含むビルド パス、ビルド順序など) を要求する単一のビルド スクリプトを使用します。
これにより、依存関係を 1 か所 (Eclipse) で管理しながら、コマンドライン ビルドを使用して自動化することができます。