同一反应堆中的普通JAR和软件包

时间:2018-12-13 08:37:41

标签: maven tycho

我们的软件由可部署的服务器组件和RCP应用程序组成。这些应用程序仍然共享许多代码。

现在,我们已经有了Maven反应堆,其中包含了我们所需的所有代码,它们都是“普通” JAR,即使同时也添加了捆绑软件的 Manifest 信息。

并且我们的所有捆绑软件都有Tycho反应堆,这些堆仅在OSGi上下文中使用过。

对于每个技术模块,这意味着我们有两个反应堆,从体系结构的角度来看这是完全错误的。这就是为什么我想要一个反应堆。

如果将所有内容放入 Maven 反应堆中,则会出现以下问题:

  • 我需要通过 pom.xml
  • 手动维护软件包的 Manifest.MF
  • Eclipse通常无法识别Maven项目是捆绑包(我们知道我们需要从 .settings / org.eclipse.pde.core.prefs 中删除import Data.List(partition) main :: IO () main = do print $ show tmp input = [[1,3],[1,3],[1,3],[1,3],[2,1],[2,1],[2,1],[2,2],[3,2],[3,2],[3,2]] tmp = combinations input -- this function turns list into list of pair, first element is element of the -- input list, second element is rest of the list each :: [a] -> [a] -> [(a, [a])] each h [] = [] each h (x:xs) = (x, h++xs) : each (x:h) xs combinations :: (Eq a) => [[a]] -> [[a]] combinations l = concat $ map combine $ each [] l where -- take pair ("prefix list", "unused lists") combine :: (Eq a) => ([a], [[a]]) -> [[a]] combine (x, []) = [x] combine (x, xs) = let l = last x -- split unused element to good and bad (g, b) = partition (\e -> l == head e) xs s = each [] g -- add on element to prefix and pass rest (bad + good except used element) to recursion. so it eat one element in each recursive call. combine' (y, ys) = combine (x ++ tail y, ys ++ b) -- try to append each good element, concat result in concat $ map combine' s ,但这是真的很乏味)
  • 最重要的是:we can't start the bundles as a product, since there is no target platform(或者必须与Maven依赖项保持平行)
  • 我们无法执行GUI测试

但是,如果我将所有物品放入 Tycho 反应堆中,则会发生以下情况:

  • 我们不能将它们用作服务器组件中的依赖项(这已经是一个淘汰参数)

我们不能拥有Maven and Tycho in the same reactor

那么有什么办法可以将一个项目的所有JAR和捆绑包放在同一反应堆中?

0 个答案:

没有答案