プログラマーに関する以前の質問からの提案に基づいて、現在のプロジェクトを3つのサブディレクトリ(swing、common、およびandroid)に分割し、それぞれに個別のAntスクリプトを作成しました。これで、SwingおよびCommonでNetBeansプロジェクトを簡単に作成し、Swingアプリをコンパイルするための適切な依存関係を設定することができました。次に、「共通」プロジェクトのクラスを使用するときに、Androidビルドプロセス用に別のAntスクリプトが必要であることに気付きました。
これで、プロジェクトのさまざまな部分を構築するために使用される4つのAntスクリプトと、プロジェクトごとに個別のsrc、test、およびその他のサポートディレクトリができました。私が最初に遭遇した問題は、NetBeansと「android」プロジェクトのantスクリプトの両方が、さまざまなビルドタスクの「common」プロジェクトで「build.xml」を使用したいということです。これらすべてのプロジェクトを、src、testなどのサブディレクトリを含む1つのディレクトリに統合することにしました。ソースコードはすでにプロジェクトごとに個別のパッケージに編成されており、SwingビルドとAndroidビルド用に個別のトラゲットを持つ単一のAntビルドスクリプトを使用できるため、これにより簡単になると思いました。
今私が遭遇している問題は、「android」プロジェクトをビルドしようとすると、すべてのSwingクラスもビルドしたいということです。これにより、多くのコンパイラエラーが発生します。パッケージ階層をコンパイルから<javac>
除外するために、タスクを変更しました。bbct.swing
<javac encoding="${java.encoding}"
source="${java.source}" target="${java.target}"
debug="true" extdirs="" includeantruntime="false"
destdir="${out.classes.absolute.dir}"
bootclasspathref="project.target.class.path"
verbose="${verbose}"
classpathref="project.javac.classpath"
fork="${need.javac.fork}"
excludes="${source.dir}/bbct/swing/**"> <------- here
<src path="${source.absolute.dir}" />
<src path="${gen.absolute.dir}" />
<compilerarg line="${java.compilerargs}" />
</javac>
ただし、Antは、Swingを使用するクラスのコンパイルを引き続き主張しています。
だから私は2つの質問があります:
このプロジェクトを整理するための最良の方法は何ですか?私が試した2つのうちの1つ、またはまったく別のものを提案しますか?
最新のソリューションに固執する場合
javac
、プロジェクト内のSwingベースのソースファイルを無視するにはどうすればよいですか?