1

プロジェクト リポジトリに RoadRunner をソースとして保存したいと考えています。ビルド ファイルを RoadRunner ソース コードに追加することで、一般的なビルド プロセスを作成しました。これはプロジェクトの変更と見なされますか? ビルド ファイルは、RoadRunner をコンパイルするために他のプロジェクトで使用できますが、それが何であるかはまだわかりません。

プロジェクト リポジトリの外に Apache Ant をバイナリとして格納したいと考えています。Ant を変更するつもりはないと思います。複数のバージョンが必要になるとは思いません。おそらくそれを使用して、他のプロジェクトでビルド プロセスを推進するでしょう。

以下のコンパイル スクリプトは、相対パスを使用して ant ツールを参照しますapache-ant-1.8.4\bin\ant。Program Files にインストールし、そのbinディレクトリをパスに追加して、ant代わりに参照するだけで済みます。

Java と同じように、Ant を外部依存関係と見なします。プロジェクト リポジトリに正確な Java ディストリビューションを保存しなければならないという説得力のある理由はありませんでした。

すべての依存関係を 1 か所に保持するために、リポジトリに Apache Ant バイナリのコピーを保持することができました。これは、RoadRunner ツールが NekoHTML、Xerces、および独自の RoadRunner ライブラリーへの依存関係を配布する方法です。極端に言えば、Java、Windows、およびすべてのデバイス ドライバーを含めることができます。適切な分割線はどこですか?

アパッチアリ

RoadRunner ソースをコンパイルするために、自動ビルド ツールとして Apache Ant を選択しました。コマンドラインのトリックを使用して javac で再帰コンパイルを行うよりも簡単で、必要なときに柔軟性が向上します。

Ant を変更したり、その実装を調べたりしたくはありませんが、ビルド スクリプトを実行するために Ant が必要です。この場合、バイナリ配布はソース配布よりも便利です。バージョン 1.8.4 のバイナリ アーカイブを自分のプロジェクトの作業ディレクトリにダウンロードし、アーカイブを apache-ant-1.8.4 というサブディレクトリに解凍しました。

ロードランナー

RoadRunnerは、HTML のデータ抽出ラッパーを生成するための Java で書かれた実験的なオープンソース ツールです。自分のビジネス インテリジェンス プロジェクトで使用したいと考えています。

RoadRunner の実装を調べて、自分のニーズに合わせて変更する可能性があります。この場合、ソース配布が便利です。いずれにせよ、バイナリ配布はありません。バージョン 0.02.11 のソース アーカイブを自分のプロジェクトの作業ディレクトリにダウンロードし、そのアーカイブを RoadRunner というサブディレクトリに解凍しました。

Apache Ant のサンプル ビルドファイルを変更して、RoadRunner ディレクトリに追加しました。次のようになります。

<project name="RoadRunner" default="build" basedir=".">
    <description>
        simple example build file
    </description>
  <!-- set global properties for this build -->
  <property name="src" location="src/roadrunner"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>

  <path id="lib">
    <!-- https://stackoverflow.com/questions/722774/getting-ant-javac-to-recognise-a-classpath -->
    <fileset dir="lib">
      <include name="*.jar"/>
    </fileset>
  </path>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by build -->
    <mkdir dir="${build}"/>
  </target>

  <target name="build" depends="init"
        description="build the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}" classpathref="lib"/>
  </target>

  <target name="dist" depends="build"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
  </target>

  <target name="clean"
        description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

RoadRunner のコンパイル

これで、次のようなコマンドを使用して、プロジェクト ディレクトリのルートから RoadRunner をコンパイルできます。

apache-ant-1.8.4\bin\ant -buildfile RoadRunner\build.xml

RoadRunner\build出力は、新しいディレクトリ内の一連のクラス ファイルです。

このコマンドを というバッチ スクリプトに保存しましたCompile RoadRunner.bat

少なくとも Ant プロジェクトとバッチ スクリプトを自分のプロジェクトにコミットする必要があると思いますが、残りについてはよくわかりません。

4

1 に答える 1

0

ビルド ファイルを RoadRunner ソース コードに追加することで、一般的なビルド プロセスを作成しました。これはプロジェクトの変更と見なされますか?

はい、そうです

ビルドの再現に役立つものはすべて、プロジェクト履歴の一部です。
生成されたもの、または既にビルドされているもの (サードパーティ ライブラリなど) はすべて、ソース管理参照の外部 (理想的にはNexusなどのアーティファクト リポジトリ) に格納し、ビルド ファイルでのみ宣言する必要があります。

あなたの場合、別の開発者が次のことができるように、必要なものは何でもコミットしてください。

  • クローン
  • ビルドを起動します(必要な依存関係がすべて見つかります)
  • 上記のビルドによって生成された結果の配信をテストします。
于 2012-11-07T07:09:30.997 に答える