Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
管理Maven Tycho多模块项目中本地依赖项的版本_Maven_Osgi_Tycho - Fatal编程技术网

管理Maven Tycho多模块项目中本地依赖项的版本

管理Maven Tycho多模块项目中本地依赖项的版本,maven,osgi,tycho,Maven,Osgi,Tycho,我有一个PDE多模块项目。这个项目是用Maven构建的(它使用Tycho)。每个模块依赖项都在OSGI样式的清单中描述,因此模块采用清单优先样式 有些模块依赖于其他本地模块,因此清单中有以下内容: Bundle-SymbolicName: com.example.module1;singleton:=true Bundle-Version: 1.0.0 Require-Bundle: com.example.module2;bundle-version="[1.0.0]", com.exampl

我有一个PDE多模块项目。这个项目是用Maven构建的(它使用Tycho)。每个模块依赖项都在OSGI样式的清单中描述,因此模块采用清单优先样式

有些模块依赖于其他本地模块,因此清单中有以下内容:

Bundle-SymbolicName: com.example.module1;singleton:=true
Bundle-Version: 1.0.0
Require-Bundle: com.example.module2;bundle-version="[1.0.0]",
com.example.module3;bundle-version="[1.0.0]",
捆绑包版本和本地依赖项的版本相同。我无法从清单中删除本地依赖项的版本,也无法从maven生成清单(验证清单的tycho在maven生命周期的开始运行)

为了更新项目版本,我必须使用“tycho版本”maven插件。它更新poms、eclipse特性和清单中的版本号。但是本地依赖项的版本没有更新(原因很明显)。此问题已由我的自定义脚本修复

问题:

  • 有没有办法在OSGI清单中管理本地依赖项的版本
  • 在多模块OSGI(清单优先)项目中,是否有管理本地依赖项版本的最佳实践

Eclipse项目传统上应用于此问题的解决方案是具有一个包含项目插件的特性,并以这种方式确保只有来自同一版本的版本安装在一起

显然,只有同时安装了将各个版本连接在一起的功能,这一点才有效。特性通常用于Eclipse用户安装的插件功能。如果您正在构建一个仅由其他Eclipse插件使用的库,那么您的插件也可能在没有特性的情况下安装


在后一种情况下,您可能需要扩展Tycho versions插件,以自动更新具有严格版本范围依赖项的依赖项,如
bundle version=“[1.0.0]”

不清楚您到底要归档什么。您想强制您的module1仅与版本完全相同的module2一起运行吗?这不是您当前指定的:
bundle version=“1.0.0”
表示“版本1.0.0或更高版本”。@oberlies,感谢您的评论。我已经解决了我的问题。