1

私たちのアリのスクリプトと最近ジャグリングした後、私はもっと良いことが可能かどうか疑問に思い始めました。

必要なすべての.javaファイルを再コンパイルすることを知っているビルダーが必要です。

例:この構造のために

public class A { ]
public class B extends A {}
public class C {
    B b;
}
  1. For:Compile('C')A、B、Cをコンパイルすることを知っています。
  2. Bが変更された場合、Compile('C')はBだけを再コンパイルすることを認識します。

私はいくつかの選択肢を知っています。Ivyは現在のJavaビルダーであるantの拡張のようです。現在C++コードの構築に使用しているSconsは、上記のCコードの動作を実行するのに優れています。次に、 Mavenがほとんど存在しているという報告がありますが、完全には存在していません

あなたは何を提案しますか?ビルドシステムにフリーソフトウェア/コマーシャルを使用しているツールは何ですか?

ありがとう、マキシム。

4

4 に答える 4

1

ivy、scons、maven のいずれも、述べられているように問題を解決するのに役立ちません。

  1. 「for Compile('C')」とはどういう意味ですか? これはあなたのantファイルにあるとは思いません。
  2. この場合、Ant は期待どおりに動作するはずです。Ant のデフォルトの動作を説明しました。同じ javac 要素で、Ant は変更されたクラスのみを再コンパイルします。javac タスク、特に「includeDestClasses」属性については、 Ant のマニュアルエントリを参照してください。

おそらく、不十分だと思われる ant ファイルの例を投稿する必要があります。

于 2009-07-13T00:47:49.650 に答える
1
  1. 'depend' タスクを使用し、'closure' オプションをオンにしたAnt
  2. 「make」、IDEA ide から
于 2010-12-13T07:47:25.133 に答える
0

Maven、個人用製品と商用製品の両方

于 2009-06-02T08:43:26.113 に答える
0

あなたの質問では、クラス間の依存関係について説明しています。ほとんどのビルド システム、特に Maven は、プロジェクト間の依存関係を対象としています。ほとんどのシステムはプロジェクト内のすべてのクラスを再コンパイルするだけであり、これらのビルド システムの利点のほとんどは、ビルドするプロジェクトをできるだけ少なくすることにあると私は信じています。

Maven と Ivy の両方を使用すると、依存するプロジェクトのバージョンなど、プロジェクトの外部依存と内部依存の両方を簡単に指定できます。外部ライブラリ (apache commons など) がローカル マシンにまだキャッシュされていない場合は、ビルド プロセスの一部としてローカル マシンに自動的にダウンロードされるため、サード パーティ製の jar ファイルを手動でダウンロードして整理する手間が省けます。

あなたが言及したように、Ivyはantの拡張です。メイブンをお勧めします。これは、私がうまく使ってきたコンベンション指向のビルド システムであり、かなり成熟していると感じています。Maven は、使用を開始するための事前の労力がはるかに少なくて済み、非常に拡張可能です。

于 2009-06-02T08:51:33.040 に答える