5

フォルダ内にすべてのソース ファイルを含む Java プロジェクトがありsrcます。この src フォルダーには、いくつかのパッケージが含まれています。これらのパッケージ/フォルダーの一部には、Java コードが含まれていません。それらには、アプリケーションでアイコンとして使用するいくつかの画像が含まれています。

ディレクトリ構造は次のようになります。

src/
com/
   example/
       pk1/     # This contains only some Java files.
       pk2/     # This will contain some XML and Java code.
       im1/     # This subfolder will contain just the images

タスクを使用すると、javacすべての Java ファイルがクラス ファイルにコンパイルされ、指定した宛先ディレクトリに保存されます。ただし、Java 以外のファイルはソース フォルダにそのまま残ります。

SOでこの質問を参照しました。ただし、私の場合、Java以外のすべてのリソースファイルを(移動するファイルを明示的に指定する必要なしに)自動的にbuildディレクトリ(すべてのクラスファイルを含むディレクトリ)に含めたいと思いますが、同じディレクトリ構造に従いますソースで。

非常に些細なことを見逃している場合はご容赦ください。

4

2 に答える 2

7

Antcopyタスクを使用して、リソースをclassesディレクトリ (または.classファイルが保存されている場所) にコピーします。デフォルトでは、ant はディレクトリ構造を保持します。

例えば:

<copy todir="classes">
  <fileset dir="com/example">
    <exclude name="**/*.java"/>
  </fileset>
</copy>
于 2012-05-05T03:01:27.293 に答える
3

前の回答を完了するために、ブロック

<copy todir="classes">
  <fileset dir="com/example">
    <exclude name="**/*.java"/>
  </fileset>
</copy>

タスクjavacの前に行く

<javac [...]

そしてターゲットコンパイル内

<target name="compile" [...]

それから

<target name="compile" [...]>
   <copy todir="&&&" [...]>
       [...]
   </copy>

   <javac srcdir="[...]" destdir="&&&" >
   </javac>
</target>

私の場合、タグ「copy」の属性「todir」は、タグ「javac」の属性「destdir」と同じです。できるだけ早く解決策を提供するために、回答を詳しく説明したいと思います。

于 2015-09-25T08:32:42.677 に答える