小编Iva*_*van的帖子

如何避免eclipse目标定义中的特定功能版本

我有一个osgi项目,分为3个存储库.每个存储库都有自己的构建到使用Tycho的p2存储库:

Repo1 -> P2 repo 1
Repo2 -> P2 repo 2
Repo3 -> P2 repo 3
Run Code Online (Sandbox Code Playgroud)

此外,每个存储库都有一个目标定义文件,其中包含来自第三方p2存储库和另一个项目存储库的捆绑包(上面的P2 repo1,P2 repo 2或P2 repo 3).Repo2包含对Repo1包的依赖,Repo3与Repo1和Repo2包有依赖关系:

Repo1 Target Definition -> Eclipse Orbit P2
Repo2 Target Definition -> Eclipse Orbit P2, P2 repo1
Repo3 Target Definition -> Eclipse Orbit P2, P2 repo1, P2 repo2
Run Code Online (Sandbox Code Playgroud)

现在我有以下问题.构建第一个存储库后,P2 repo1存储库已更新,并包含具有新快照版本的功能.Repo2和Repo3的目标定义取决于Repo1包的先前快照版本,如果不更新相应的目标定义,则无法构建这些存储库(在Eclipse中,目标编辑器中有更新按钮).

<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="com.myproduct.feature.api.game.feature.group" version="1.0.0.201509251400"/>
<unit id="com.myproduct.feature.impl.game.feature.group" version="1.0.0.201509251400"/>
<repository location="http:............../target/repository/"/>
</location>
Run Code Online (Sandbox Code Playgroud)

所以不可能自动构建所有3个repos,因此构建过程变得过于复杂:

  • 在第一个repo中提交更改并使用Jenkins构建它
  • 更新repo2的目标定义,将其指向新版本的repo 1功能
  • 在repo2中提交此更新并使用Jenkins构建它

等等....

我现在想使用git子模块来集成这3个repos以避免p2存储库或在一个存储库中移动所有存储库.

java eclipse osgi eclipse-rcp tycho

11
推荐指数
1
解决办法
834
查看次数

标签 统计

eclipse ×1

eclipse-rcp ×1

java ×1

osgi ×1

tycho ×1