我想用目标平台构建一个RCP-Application,这是一个Maven / Tycho目录 .
现在我遇到了一些无法解决依赖关系的麻烦 .
Internal error: java.lang.RuntimeException: "No solution found because the
problem is unsatisfiable.": ["Unable to satisfy dependency from
de.test.prototype.main 1.0.0.qualifier to bundle org.eclipse.ui 0.0.0.",
"Unable to satisfy dependency from de.test.prototype.main 1.0.0.qualifier
to bundle org.eclipse.core.runtime 0.0.0.", ...
总而言之,有几个依赖性解决问题,所以我认为Tycho不能使用我的目标平台 .
我读了http://wiki.eclipse.org/Tycho/Target_Platform并且有以下注释:
不支持位置类型“目录”,“安装”和“功能” . “
所以我的问题是:我如何让Tycho使用我的目标平台,虽然它是一个目录?
3 回答
Tycho需要p2元数据才能解决构建中的依赖关系 . 这就是无法使用仅具有捆绑包和功能的文件夹的原因 .
但是,您可以使用Features and Bundles Publisher Application将文件夹转换为p2存储库 . 完成此操作后,您可以通过目标定义文件中的
file:
URL将文件夹引用为"Software Site"位置 . 然后第谷也将能够使用它 .但是请注意,您首先应该问自己是否真的需要这样做:文件夹中的功能和包是否真的在任何p2存储库中都不可用?如果是,则强烈建议不要在它们上运行Features and Bundles Publisher(或者您可能导致违反p2的基本假设,这可能导致通常仅对您的用户可见的问题) . 相反,您应该直接从p2存储库引用这些功能和包,例如通过目标文件中的"Software Site"位置 .
从插件创建一个repo并将其上传到http服务器(如apache)并将你的tycho pom指向repo
这个例子适用于mac和eclipse 4,但通过一些调整,你可以使它在其他平台上运行 .
首先在桌面上创建一个src文件夹 . 在此文件夹中创建2个文件夹:功能插件
现在将插件复制到插件文件夹和features文件夹中的功能 .
然后在某处创建一个空的目标文件夹(将此文件夹上传到您的服务器)
对于这个例子,我在桌面上创建了两个文件夹以保持简单
然后我这样做:
repo文件夹现在包含目标平台的repo . 上传它,调整pom和构建 .
根据我的表现,Tycho仅支持 online p2存储库 . 它拒绝使用位于本地磁盘上的p2 repo . 奇怪但真实 .