Rol*_*epp 14 java eclipse workspace rcp dependencies
我正在寻找处理混合项目类型之间的项目间依赖关系的最佳实践,其中一些项目是eclipse插件/ OSGI包项目(RCP应用程序),而其他项目只是普通的旧Java项目(Web服务模块).很少有eclipse插件依赖于Java项目.
我的问题是,至少就我看来,没有办法在Eclipse PDE环境中干净地表达这种依赖.我可以让插件项目依赖于其他插件项目(通过Import-Package
或Require-Bundle
清单头文件),但不是普通的java项目.
我似乎能够让项目从工作空间中的另一个项目声明对jar的依赖,但这些jar文件既不会被导出也不会被启动配置(虽然,java代码编辑看到库很好).
"Java项目"用于构建部署在J2EE容器(目前为JBoss 4.2.2)上的服务,并在某些情况下生成多个jar - 一个用于部署到JBoss耳朵,另一个用于客户端代码(一个用于客户端代码) RCP应用程序).
我们现在"解决"这个问题的方式是我们还有两个外部工具启动器配置 - 一个用于构建所有jar,另一个用于将这些jar复制到插件项目中.这样做(有点),但是"整个构建"和"复制罐子"目标会产生相当大的构建步骤,绕过整个eclipse增量构建功能并通过复制jar而不是仅仅引用项目我将依赖关系信息解耦并请求相当大的工作空间刷新,这就像糖果一样耗尽了开发时间.
我想要的是一个更加"自然"的工作空间设置,它可以管理项目之间的依赖关系并仅在需要时请求增量重建,能够使用RCP应用程序插件中的服务库中的客户端代码并且能够启动RCP应用程序,其中包含所需的所有必需类.
那么我可以吃蛋糕吗?)
需要明确的是,目前依赖管理和模块管理与Eclipse PDE配置有关.
我很清楚[Maven],[Ivy]和[Buckminster]等产品,他们解决了一个完全不同的问题(一旦我解决了工作区配置问题,这些产品实际上可以派上用场实现工作空间和构建产品)
AlB*_*lue 11
Eclipse项目依赖于项目属性(依赖项目?)中的复选框,这就是Eclipse决定构建哪个项目的方式.您可以自己设置它,但通常在更改Java构建路径时设置它.它将数据存储在.project文件IIRC中,因此一旦您浏览了GUI并看到了哪些更改,您就可以更灵活地应用其他文件.
但是,听起来你想要混合搭配Jars和Bundles.简单的方法是将所有项目视为Java项目.在PDE项目中,您实际上可以进入并调整Java构建路径; 它会抱怨并说它不是正确的方法,但它会让你有一个PDE项目依赖于Java项目而没有那么蓬松的JARing.话虽如此,如果这种方法存在运行时问题,我也不会感到惊讶 - PDE运行时可能不会这样看.
另一种方法是让你的JAR自己成为PDE/OSGi包.毕竟,一个OSGi包只不过是一个JAR,它在Manifest中有一些额外的功能,它可以让你使用自动依赖管理轻松地开发和组装你的项目.这可能是最容易实现的,即使你真的不需要清单出现在你的捆绑包中.但这样做意味着您的PDE应用程序可以采用更模块化的方法,而不是根据需要在每个插件中嵌入库.
因此,PDE可以生成OSGi包,这只是JAR + Manifest的另一个名称.您可以在其他环境中以完全相同的方式使用JAR(例如,对于您的EAR或其他客户端使用),您可以利用应用程序中的OSGi层.考虑到你所谈论的混合束的类型,没有理由不这样做.
我从未这样做过,所以这是一种理论方法。但我会尝试像 ivy 或 maven2 这样的依赖管理系统。
由于 maven2 做了更多的事情,然后只是依赖管理,所以在这种情况下我推荐 ivy。
归档时间: |
|
查看次数: |
12061 次 |
最近记录: |