2

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

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

今、con.javaの自動コンパイルをしたいのですが、どこから始めればいいのかわかりません。人々は私がAntを試すことを提案しましたが、Eclipseを使用して取得する自動化されたAntファイル生成は、アクティブなプロジェクトファイルが存在する間にcon.javaをビルドするのに十分なようです。とにかく、Eclipseを使用せずにこれを自動化して、バッチファイルに.jar自体を生成させることはできますか?

4

2 に答える 2

6

これは間違いなくAntの仕事です。Eclipseで生成されたAntファイルに依存しないでください。マニュアルを読み、自分で書いてください。(Antは、ビルドスクリプトで実行することを考えていなかったことも実行することに気付くでしょう。)

具体的には、jarタスクのドキュメントを次に示します

于 2009-05-15T19:03:43.917 に答える
3

ワイルドカードとパターンの一致を定義して、ビルドにあらゆる種類のファイルとフォルダーを含める/除外することができます。Antのマニュアルを見て、ファイルセットなどが包含フィルターと除外フィルターでどのように機能するかを確認してください。

また、チュートリアルをお読みください。

これは、すべての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>
于 2009-05-16T01:24:53.423 に答える