2

我需要有一个 lib-project (myLib) 和几个应该使用来自 myLib 的源代码的应用程序项目。我在配置 Eclipse 时遇到了麻烦。

所需的项目树是这样的:

myProject
   /src
      ..some files..
   /bin

myLib
   /src
      ..some files..
   /bin

现在我正在尝试配置myProject的类路径,使其使用来自myLib/src.

如果我使用 Eclipse 的 GUI 添加链接源(UPD:我以这种方式添加到源文件夹的链接:右键单击项目->构建路径->配置构建路径->转到“源”选项卡->按下按钮“链接Source..." ->指定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,但文件中似乎完全不支持相对路径.project:Eclipse can't find my myLib/src,我尝试了很多变体。

如何做到这一点?

4

2 回答 2

3

我不确定您是如何添加项目引用的,但就我而言,路径是相对的。

这是.classpath一个名为的项目Adarsh,它引用了另一个名为 的 Java 项目raroscope

<?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 Build Path > Projects 并添加myLibraroscope此处),如下所示。

在此处输入图像描述

于 2012-05-02T08:50:01.613 回答
0

将 .project 文件中链接资源的路径替换为:

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

它是PARENT-1使 Eclipse 从项目目录路径向上查找一个目录以查找您的库目录的修饰符。

于 2012-12-29T12:16:29.500 回答