我需要一个lib-project(myLib)和几个应该使用myLib源代码的应用程序项目。我在配置Eclipse方面遇到了麻烦。
所需的项目树是这样的:
myProject
/src
..some files..
/bin
myLib
/src
..some files..
/bin
现在我正在尝试配置myProject
的类路径,以使其使用来自myLib/src
的来源。
如果我使用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
文件中的路径,但似乎 .project
文件中完全不支持相对路径: Eclipse无法找到我的myLib/src
,我尝试了很多变体。
如何实现这一目标?
答案 0 :(得分:3)
我不确定你是如何添加项目引用的,但在我的情况下,路径是相对的。
这是名为.classpath
的项目的Adarsh
,它引用了另一个名为raroscope
的Java项目。
<?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&gt;项目并在此处添加myLib
(raroscope
),如下所示。
答案 1 :(得分:0)
使用以下命令替换.project文件中链接资源的路径:
<linkedResources>
<link>
<name>lib_src</name>
<type>2</type>
<locationURI>PARENT-1-PROJECT_LOC/myLib/src</locationURI>
</link>
</linkedResources>
这是PARENT-1
修饰符,它使Eclipse从库目录的项目目录路径中查找一个目录。