0

Ant ビルド スクリプトには、依存しているプロジェクトのリストがあります。コンパイル用のクラスパスを作成する必要があります。

私は持っている:

included.projects=ProjectA, ProjectB

そして私は必要です:

included.project.classpath=../ProjectA/bin, ../ProjectB/bin

現在のコード:

<echo message="${included.projects}" />

<pathconvert property="included.projects.classpath" dirsep="," >
      <map from="" to="../"/>
        <path location="${included.projects}"/>
    </pathconvert>

<echo message="${included.projects.classpath}" />

<javac srcdir="${src.dir}" destdir="${build.dir}" includeantruntime="false" source="1.6">
    <classpath>
        <pathelement path="${classpath}" />
        <dirset includes="${included.projects.classpath}" />
    </classpath>
</javac>

私も明示的な宣言で試しましたが、うまくいきませんでした:

<path id="modules.classpath"> 
  <fileset dir="../ModuleA/bin" /> 
  <fileset dir="../ModuleB/bin"/> 
</path> 
<path id="libraries.classpath"> 
  <fileset dir="lib" includes="*.jar"/> 
</path> 
<javac srcdir="${src.dir}" destdir="${build.dir}" includeantruntime="false" source="1.6"> 
   <classpath refid="libraries.classpath" /> 
   <classpath refid="modules.classpath" /> 
</javac>

私は、明示的な宣言コードの問題は何ですか?クラスパスソリューションへのコンマ区切り文字列で解決することは可能ですか?

4

1 に答える 1

1

次のように、ビルドの上部でクラスパスを明示的に宣言する方が簡単だと思います。

<path id="compile.path">
   <fileset dir="../ProjectA/bin" includes="*.jar"/>
   <fileset dir="../ProjectB/bin" includes="*.jar"/>
</path>

次のように使用します。

<javac srcdir="${src.dir}" destdir="${build.dir}" includeantruntime="false" source="1.6">
    <classpath>
        <path refid="compile.path"/>
        <pathelement path="${classpath}" />
    </classpath>
</javac>

ノート:

  • あなたの質問をもう一度読んで、他のプロジェクトでビルドされた jar ファイルを使用していないことに気付きましたよね? ....いい考えじゃない....
于 2013-02-21T21:06:36.667 に答える