2009-05-15 13 views
2

私は雇用主のための自動化プロジェクトに取り組んでいます。ソースコードの各リビジョンごとにプールがあります。リビジョンをダウンロードするときは、最終的にプロジェクトをビルドするために、サードパーティのインクルードを含むディレクトリ構造を作成する必要があります。私はスクリプト(.bat)を実行して、それぞれの実行可能なJavaアプリケーションをコンパイルするまでこのプロセス全体を自動化しました。そここの単一のプロジェクトに多くのアプリケーションがあり、ディレクトリのリストは、このようなものになります。今大きなJavaプロジェクトのコンパイルを自動化するにはどうすればよいですか?

Proj Name 
    -variousincludesfolder1 
    -variousincludesfolder2 
    -variousincludesfolder3 
    -variousincludesfolder4 
    -runnableapplicationsandmoreincludes 
     -con.java 

を、私はcon.javaの自動編集を行うにはしたいと思いますが、私はどこに知りませんベギン。人々は私がAntを試してみることを提案しましたが、Eclipseを使用して得られる自動化されたAntファイルの生成は、アクティブなプロジェクトファイルが存在する間にcon.javaを構築するのに十分なようです。とにかく、バッチファイルに.jar自体を生成させる点に、Eclipseを使わずにこれを自動化する方法はありますか?

答えて

6

これは間違いなくAntの仕事です。 Eclipseで生成されたAntファイルには依存しないでください。 manualを読んで自分で書き込んでください。 (あなたがビルドスクリプトでやっていると思っていなかったことをAntが実行していることが分かります)

具体的にはhere is the documentation for the jar taskです。

+0

しかし、必要な可能性のあるすべての関連クラスを自動的に検索してコンパイルすることはできますが、頻繁に変更され、通常は複雑で時間のかかる検索が必要です?ありがとう。 – Monster

+0

あなたはどういう意味なのかよくわからないので、私は別の質問に答えます:あなたは今これをどうやってやっていますか? –

+0

まあ、基本的には、何かをコンパイルするか、Eclipseを使う前に、私はJavaファイルのディレクトリ構造を持っています。これらのうちのいくつかは、Javaアプリケーションにコンパイルできます。しかし、プロジェクトのサイズのために、1つのJavaアプリケーションは、数百、または1000以上の他のソースファイルに相互依存する可能性があります。 今のところ、ディレクトリ構造を新しいEclipseプロジェクトにインポートします。次に、私のアプリケーション(con.java)をコンパイルして、他のすべてのクラスファイルをコンパイルします。しかし、私はコマンドラインからすべてこれをしたいと思います。 – Monster

3

ワイルドカードとパターンの一致を定義して、ビルド内のすべての種類のファイルとフォルダを含める/除外することができます。 Ant manualを見て、filesetsのようなものがインクルードフィルタと除外フィルタでどのように機能するかを確認してください。

また、tutorialも読んでください。

ここには、すべてのJavaファイルをコンパイルしてすべてのjarファイルを参照する簡単なビルドファイルがあります。

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" 
    href="http://www.ibm.com/developerworks/xml/library/x-antxsl/examples/example2/ant2html.xsl"?> 
<project name="Proj Name" default="build" basedir="."> 
    <property name="src.dir" value="${basedir}" description="base folder where the source files will be found. Typically under /src, but could be anywhere. Defaulting to root directory of the project" /> 
    <property name="build.dir" value="build" description="Where to put build files, separate from src and resource files." /> 

    <path id="master-classpath"> 
     <fileset dir="${basedir}" description="looks for any jar file under the root directory"> 
      <include name="**/*.jar" /> 
     </fileset> 
    </path> 

    <target name="build" description="Compile all JAVA files in the project"> 
     <javac srcdir="${src.dir}" 
      destdir="${build.dir}/classes" 
      debug="true" 
      deprecation="true" 
      verbose="false" 
      optimize="false" 
      failonerror="true"> 
      <!--master-classpath is defined above to include any jar files in the project subdirectories(can be customized to include/exclude)--> 
      <classpath refid="master-classpath"/> 
      <!--If you want to define a pattern of files/folders to exclude from compilation...--> 
      <exclude name="**/realm/**"/> 
     </javac> 
    </target> 

</project> 
関連する問題