3

在 Eclipse 中,可以在一个项目中创建启动配置,指定来自另一个项目的运行时依赖项。我发现的一个问题是,如果您有一个多项目工作区,可能每个项目都有自己的库,那么很容易将辅助项目中的显式依赖项添加到另一个项目的库中,因此可能会发生变化。

这个问题的一个例子如下:

项目1
    +-- 源代码  
    +-- 库  
           +-- jar1-v1.0.jar  
           +-- jar2-v1.0.jar  
项目2  
    +-- 源代码  
    +-- proj2-tests.launch

我没有从 proj2/src 中的代码到 proj1/lib 中的库的依赖关系。尽管如此,我确实有从 proj2/src 到 proj1/src 的依赖关系,尽管由于 proj1/src 中的代码对其库 jar1-v1.0.jar 和 jar2.v1.0.jar 存在内部依赖关系,我必须将 proj2-tests.launch 中的依赖项添加到 proj1/lib 中的库中。这转化为 proj2-tests.launch 中的以下丑陋行:

<listEntry value="<?xml version="1.0" encoding="UTF-8" Standalone="no"?>
<runtimeClasspathEntry path="3" projectName="proj1" type="1"/>
"/>
<listEntry value="<?xml version="1.0" encoding="UTF-8" Standalone="no"?>
<runtimeClasspathEntry internalArchive="/proj1/lib/jar1-v1.0.jar" path="3" type="2"/>
"/>
<listEntry value="<?xml version="1.0" encoding="UTF-8" Standalone="no"?>
<runtimeClasspathEntry internalArchive="/proj1/lib/jar2-v1.0.jar" path="3" type="2"/>
"/>

如果不需要不时地发展软件、升级库等,这不会是一个大问题。考虑升级库 jar1-v1.0.jar 和 jar2-v1 的常见需求。 0.jar 到他们的版本 v1.1。假设您在一个工作区中有大约 10 个项目,每个项目大约有 5 个库和大约 4 个启动配置。在对库进行简单升级时会产生维护开销,这通常意味着对不需要的文件进行更改。或者也许我做错了什么......

我想说的是 proj2 取决于 proj1 及其库,并将其简单地转换为 *.launch 文件中的那个。那可能吗?

4

1 回答 1

2

除非我弄错了,如果您将 project1 添加到 project2 的构建路径中,则 project2 的启动器将包含正确的类路径,即使 project1 的依赖项发生更改:

替代文字 http://img24.imageshack.us/img24/9511/eclipsebuildpath.png

(project2 的属性,Java 构建路径,选项卡“项目”)

于 2010-05-18T04:11:00.777 回答