在Eclipse中,可以在项目中创建启动配置,指定来自另一个项目的运行时依赖项。我发现的一个问题是,如果你有一个多项目工作区,可能每个项目都有自己的库,很容易将二级项目中的显式依赖项添加到另一个项目的库中,因此可能会发生变化。
此问题的一个示例如下:
proj1 +-- src +-- lib +-- jar1-v1.0.jar +-- jar2-v1.0.jar proj2 +-- src +-- proj2-tests.launch
我没有从proj2 / src中的代码到proj1 / lib中的库的依赖。不过,我确实有一个从proj2 / src到proj1 / src的依赖,虽然因为proj1 / src中的代码内部依赖于它的库jar1-v1.0.jar和jar2.v1.0.jar,必须在proj2-lib中的库中添加proj2-tests.launch中的依赖项。这转化为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文件中的简单。这可能吗?
答案 0 :(得分:2)
除非我弄错了,如果你将project1添加到project2的构建路径,project2的启动器将包含正确的类路径,即使project1的依赖项发生了变化:
alt text http://img24.imageshack.us/img24/9511/eclipsebuildpath.png
(project2的属性,Java Build Path,选项卡“Projects”)