9

Eclipse クラスパス変数を使用して、クラスパス内のライブラリに添付されたソース JAR ファイルを解決したいと考えています。これは、Elcipse (Indigo) の現在の「.classpath」ファイルの内容です。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src"/>
  <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry exported="true" kind="lib" path="lib/ApacheCommons/commons-logging.jar"/>
  <classpathentry exported="true" kind="lib" path="lib/Spring-WS/spring-ws-1.5.8-all.jar"/>

  <!-- [other entries] -->

  <classpathentry kind="output" path="bin"/>
</classpath>

「spring-ws-1.5.8-all.jar」のソース JAR ファイルを追加すると、「.classpath」ファイルの内容は次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src"/>
  <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry exported="true" kind="lib" path="lib/ApacheCommons/commons-logging.jar"/>
  <classpathentry exported="true" kind="lib" path="lib/Spring-WS/spring-ws-1.5.8-all.jar"
    sourcepath="D:/dev/sources/spring-ws-1.5.8-sources.jar"/>

  <!-- [other entries] -->

  <classpathentry kind="output" path="bin"/>
</classpath>

ご覧のとおり、Eclipse は「sourcepath」属性を「classpathentry」要素に絶対パスで追加しました。

今私の考えは、絶対パスをクラスパス変数「SOURCE_PATH」に置き換えることです。これは「D:/dev/sources」に正しく設定されています。

(なぜこのセットアップを使用するのか、または変更する必要があると提案しないでください。これは古いプロジェクトであり、残念ながらビルド構造を変更することはできません/許可されていません)。

私は試した

sourcepath="SOURCE_PATH/spring-ws-1.5.8-sources.jar"

としても

sourcepath="${SOURCE_PATH}/spring-ws-1.5.8-sources.jar"

ただし、両方のバリアントは機能しません。

間違った構文を使用しているか、クラスパス変数の概念を理解していないようです。「sourcepath」属性にクラスパス変数を使用できないのでしょうか?

助けてくれてどうもありがとう!

4

3 に答える 3

1

上記の Tod の回答を使用すると、多数のプロジェクトに多数の jar がある場合、.classpath ファイルを直接編集する方が簡単な場合があります。.classpath で Java Build Path 変数を使用すると、参照が次のように変更されます。

<classpathentry kind="lib" path="/full/pathTo/Jar.jar"/>

に:

<classpathentry kind="var" path="NEW_PATH_VARIABLE/Jar.jar"/>
于 2016-03-26T19:30:04.023 に答える