2012-05-02 42 views
2

私は1つのlib-project(myLib)と、myLibのソースを使用するいくつかのアプリケーションプロジェクトが必要です。 Eclipseの設定に問題があります。複数のプロジェクトに共通のソースフォルダを使用し、絶対パスを避ける

myProject 
    /src 
     ..some files.. 
    /bin 

myLib 
    /src 
     ..some files.. 
    /bin 

は、今私はそれがmyLib/srcからソースを使用するために、myProjectのクラスパスを設定しようとしています:

理想のプロジェクトツリーは、そのようなものです。

私はEclipseのGUIを使用してリンク元を追加する場合(UPD:私はソースフォルダにこの方法のリンクを追加しました:プロジェクト上で右クリック - >ビルド・パスを - 設定は、パスを構築> - >「ソース」タブに行く - >押しボタン「リンクソース...」 - >myLib/srcし、フォルダ名のパスを指定:「lib_src)、それから私は、次のすなわち、myLib/srcへの絶対パスを得ました:

myProject/.classpath

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" path="lib_src"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
    <classpathentry kind="output" path="bin"/> 
</classpath> 

myProject/.project:私はすでに言ったように

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>data_manager__gui</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
    </natures> 
    <linkedResources> 
     <link> 
      <name>lib_src</name> 
      <type>2</type> 
      <location>/HERE/IS/FULL/PATH/TO/myLib/src</location> 
     </link> 
    </linkedResources> 
</projectDescription> 

、私は絶対パスを回避する必要があります。だから、私はそのように指定するパスmyLib/srcを必要とする:../myLib/src

その後、私は手動でMYLIB/SRCへのパスを指定しようとしましたが、私は.classpathにそのような行を追加した場合:

<classpathentry kind="src" path="../myLib/src"/> 

その後Eclipseは.classpathが完全に壊れていると思うし、次の空白のデフォルトにリセット:

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

その後、私はでパスを変更しようとしましたファイルですが、相対パスは完全にサポートされていないようです.projectファイル:Eclipseは私のmyLib/srcを見つけることができませんでした。

これを行うには?

答えて

3

プロジェクト参照をどのように追加したかはわかりませんが、私の場合はパスが相対的です。

raroscopeという別のJavaプロジェクトを参照するAdarshというプロジェクトの.classpathです。

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> 
    <classpathentry combineaccessrules="false" kind="src" path="/raroscope"/> 
    <classpathentry kind="lib" path="geocoder-java-0.9.jar" sourcepath="geocoder-java-0.9-sources.jar"/> 
    <classpathentry kind="lib" path="commons-logging.jar"/> 
    <classpathentry kind="lib" path="gson-2.1.jar"/> 
    <classpathentry kind="lib" path="commons-lang.jar"/> 
    <classpathentry kind="output" path="bin"/> 
</classpath> 

あなたはあなたのプロジェクトmyProject、選択したJavaのビルド・パス>プロジェクトを右クリックすることと以下のようになりmyLib(ここではraroscope)を追加する必要があります。

enter image description here

+0

ありがとう、あなたのソリューションは私の特定のケースで動作しますが、とにかく、このフォルダがプロジェクトの外にあっても共通のソースフォルダを指定する方法を見つけようとしました。現在のところ、あなたのパス "/ raroscope"は作業スペースに依存しています。作業をするためには、作業スペースに "raroscope"プロジェクトが必要です。絶対的な絶対パスよりもはるかに優れていますが、 '../ myLib/src'のようなパスを指定する方法を探しています。しかし、もう一度感謝します。あなたの解決策は私にとって受け入れられます。 –

+0

ところで、私は自分の質問を更新しました:私はソースを追加する方法を指定しました。 –

+0

喜んで助けました。また、Eclipseでユーザー変数を作成する方法を調べることもできます。 – adarshr

0

これであなたの.projectファイル内のリンクされたリソースへのパスを置き換えます。

<linkedResources> 
    <link> 
     <name>lib_src</name> 
     <type>2</type> 
     <locationURI>PARENT-1-PROJECT_LOC/myLib/src</locationURI> 
    </link> 
</linkedResources> 

それはのためのプロジェクトディレクトリのパスから1つのディレクトリアップを見るためにEclipseを引き起こしPARENT-1モディファイアのあなたのライブラリディレクトリ。

関連する問題