如何在 Eclipse PDE 中表达项目间依赖关系
我正在寻找处理混合项目类型之间项目间依赖关系的最佳实践,其中一些项目是eclipse插件/ OSGI捆绑项目(RCP应用程序),而其他项目只是普通的旧java项目(Web服务模块)。很少有 eclipse 插件依赖于 Java 项目。
我的问题是,至少就我所见过的,在Eclipse PDE环境中没有办法清晰地表达这种依赖性。我可以让插件项目依赖于其他插件项目(via或 manifest headers),但不能依赖于普通的java项目。Import-Package
Require-Bundle
我似乎能够让项目声明对工作区中另一个项目的jar的依赖关系,但是这些jar文件不会通过导出或启动配置来获取(尽管java代码编辑可以看到库很好)。
“Java项目”用于构建要部署在J2EE容器(目前为JBoss 4.2.2)上的服务,并在某些情况下生成多个jar - 一个用于部署到JBoss耳朵,另一个用于客户端代码(RCP应用程序)。
我们现在“解决”这个问题的方式是,我们还有2个外部工具启动器配置 - 一个用于构建所有jar,另一个用于将这些jar复制到插件项目。这有效(某种程度上),但是“整个构建”和“复制jars”目标会产生相当大的构建步骤,绕过整个eclipse增量构建功能,并通过复制jar而不是仅仅引用项目,我正在分离依赖关系信息并请求相当大的工作区刷新,这占用了开发时间,就像糖果一样。
我希望有一个更“自然”的工作区设置,它将管理项目之间的依赖关系,并仅在需要时请求增量重建,能够在RCP应用程序插件中使用服务库中的客户端代码,并能够在需要时启动RCP应用程序的所有必要类。
所以我可以把我的蛋糕吃得太;)
注意
需要明确的是,目前这与其说是关于依赖关系管理和模块管理,不如说是关于Eclipse PDE配置。
我很清楚像[Maven],[Ivy]和[Buckminster]这样的产品,它们解决了一个完全不同的问题(一旦我解决了工作空间配置问题,这些产品实际上可以派上用场来实现工作空间和构建产品)