问题标签 [tycho]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2055 浏览

eclipse - Tycho & Eclipse-PlatformFilter

我正在使用 tycho 自动构建我的 RCP 应用程序(实际上,我采用了其中一个示例中报告的结构)。我不得不说它工作得很好,我能够支持我需要的所有三种架构(linux x86、linux x86_64、win32 x86)。

此外,应用程序的一部分需要一些本机代码,我提供了片段(请参阅我之前的问题)。每个片段都是为特定架构量身定制的,因此在片段的清单中指定它:

但是,如果我运行,mvn install我会获得:

请注意,没有正确编译的同一个项目......我错过了什么?Eclipse-PlatformFilter

0 投票
1 回答
2501 浏览

maven - 如何将 Bundle-classpath jar 及其依赖项从 maven repo 复制到我的本地 lib 文件夹?

我们正在开发一个Eclipse RCP应用程序。我们决定将SVN用于版本控制系统。我们可以在 eclipse 环境中导出一个 eclipse 产品。一切正常。

但,

我们的一些插件依赖于在其 manifest.mf 中使用bundle-classpath的常规 java jar 。到目前为止,我们将这些 jars 提交到 SVN 存储库中。我们“听说”将 jars 提交到 svn 是错误的,为此我们应该使用maven-tycho并将这些 jars 放入 maven 存储库中。

因此,我们将 jar 从 SVN 存储库移至 Maven 存储库。然后我们想设置一个新的开发环境,我们从 svn 中检查了项目,它们有编译错误,因为我们没有 jars!

我们使用m2eclipse并在我新创建的pom.xml文件中定义所有依赖项。maven-dependency-plugin 的复制目标并列出所有 jar,然后我们运行 mvn validate 将 jar 放入我们的 lib 文件夹。它有效,但在我看来有点难看。因为我的插件的 pom.xml 看起来像定义每个依赖项两次:

有没有办法摆脱这个?

此外,如果 MyJar.pom 有其他依赖项,我在本地库中也需要它们。有没有办法将这些传递依赖项复制到我的本地 lib 文件夹

我尝试了copy-dependencies 目标,但它试图找到我的插件所依赖的其他插件的 jar。我只需要将常规 jar 复制到我的本地库中。我的其他插件已经与它们的所有源代码一起作为插件项目存在。我不需要他们的罐子。我可以过滤掉那些吗?我试过这个没有成功:

谢谢

0 投票
2 回答
3950 浏览

maven - 复制依赖项时如何排除eclipse-plugin依赖项?

这是我在 StackOverflow 中的第二个问题。第一个有点长。我希望这次我能切入正题:)

假设 Eclipse 插件项目 P 通过 Require-Bundle 依赖于插件 R。所以我们的 Eclipse 工作区中有 2 个项目。

同样,Eclipse 插件项目 P 依赖于通过 Bundle-Classpath 的常规 A.jar。

最后,A.jar 位于带有 POM 的 maven 存储库中,并且依赖于 B.jar。

我需要将 A.jar 和 B.jar 复制到 P 的本地 lib 文件夹,而不是 R.jar。

在 POM 文件中,P 和 R 的 GroupId 是 G。A 和 B 的 GroupId 不同,但不是 G。

我不明白为什么,但是复制依赖的目标是搜索 R.jar,当它找不到它并且不复制 A.jar 或 B.jar 时失败。我尝试使用 excludeGroupIds 但无法成功:

有没有办法排除 eclipse-plugin 依赖项?

0 投票
4 回答
4940 浏览

maven - 如何从单个父 pom.xml 构建具有不同版本的插件?

我正在尝试使用 Maven Tycho 构建几个 Eclipse 插件。所有插件的版本号都不相同。

假设以下 pom 架构:

  • plugin1(版本 1.0.6.qualifier)/ pom.xml
  • plugin2(版本 1.4.0.qualifier)/ pom.xml
  • pom.xml(父 pom 版本 1.0.0.SNAPSHOT)

Maven 的构建失败并出现以下错误:

如何配置父 pom 以能够构建具有不同版本号的那些插件?我应该使用不同的 pom 架构来解决这个问题吗?

请注意,我不想修改插件的版本。

0 投票
1 回答
181 浏览

eclipse - 有没有办法在 Eclipse 中不打开或导入依赖包的情况下开发 OSGi 包?

当您使用 eclipse 开发 OSGi 包时,有许多依赖包需要导入和打开。当捆绑包很多时,设置项目既费时又困难,尤其是对新手而言。

我试过 Tycho 插件和 m2e;看来他们不是为了这个目标。

0 投票
1 回答
552 浏览

eclipse - 为什么我的 JUnit 插件测试因未解决的捆绑错误而失败?

我正在尝试让我的 JUnit 插件测试启动器为我的 PDE 项目运行。它以前可以工作,但我更改了我的 OSGi 捆绑包的一些名称,现在它因以下原因而失败:

请查看完整的错误日志

我不确定如何诊断这些消息以及它们可能指的是哪里/什么问题。这些测试在我的命令行 Tycho-Maven 构建中成功运行,并且项目在 Eclipse 中编译没有错误。我在启动器的“启动方式”选择框中选择了“所有工作区并启用目标插件”选项。

任何想法为什么我会收到这些错误消息?

0 投票
3 回答
1477 浏览

unit-testing - Tycho:在 JUnit 测试失败的情况下如何防止部署?

我得到了eclipse-plugin一些单元测试。
在 Maven 中,我将单元测试保存在同一个包中,并将 junit 指定为pom.xml.
现在我想切换到 tycho 并且我读到 tycho 正在寻找一个具有相同名称的包以及一个".tests"执行的后缀。但是我想将我的单元测试保留在测试包中,这样如果任何测试失败,包的构建就会失败。否则,maven 可能会在单元测试未成功完成的地方安装/部署工件。

有没有办法使用 tycho 将单元测试保存在同一个包中?
您如何管理 tycho 构建中的单元测试?

更新:好的,我现在有两个单独的包 aneclipse-plugineclipse-test-plugin. Tycho 在同一个反应器中构建它们,但是eclipse-plugin尽管单元测试失败了,但我的却被部署了。现在我在我的 nexus repo 中有一个损坏的工件......
当单元测试没有成功完成时,有没有办法强制构建失败?

0 投票
1 回答
2454 浏览

java - 如何在 tycho 中引用 mockito?

我目前正在尝试由 tycho 完成我的构建(约 30 个捆绑包)。在我的单元测试中使用Mockito
时,我遇到了一些令人困惑的问题。 我为测试的包创建了一个片段项目。由于 tycho 应该使用清单解析所需的包,我从. 然后,当我尝试将 mockito 添加到清单中的所需捆绑包时,未列出 mockito。我找到了这篇文章并创建了一个指向 eclipse indigo 的目标平台。
eclipse-test-pluginpom.xml

我包括了平台细节,所以我不需要 eclipse delta 包。然后第一个奇怪的事情发生了。Eclipse 告诉我存在一些无法满足的依赖关系,当我在 eclipse 中将新创建的目标平台设置为活动时,eclipseorg.osgi.framework无法解决更多的包,例如 等。但是当我构建一个eclipse-product使用 tycho 和目标平台时,它正在工作。

我的目标平台

如果我将当前的 eclipse 安装设置为活动平台,则捆绑包被解析。我选择了以下 indigo 版本:

  • Eclipse RCP 插件开发人员资源
  • Equinox 目标组件
  • 码头目标组件

所以我的第一个问题是“我的目标平台出了什么问题,所以 tycho 可以使用它,但 eclipse 不行?”

为了更接近我的原始问题(让 mockito 运行),我将当前的 eclipse 安装设置为活动目标平台。Eclipse 然后可以解析org.osgi.framework包和其他。
然后,我pom.xml在上述帖子中再次添加了先前删除的对 mockito 的依赖项。但是,当我尝试将其添加到清单中所需的捆绑包时,我仍然找不到 mockito。

所以我的第二个问题是“我做错了什么?你如何引用未在 eclipse 更新站点上发布的包,例如 maven 中央存储库?”

更新:在我的研究中,我发现了两种在我的目标平台中包含来自非 p2-update-sites的捆绑包的方法:

  1. Nexus Pro Nexus
    专业版支持 p2-Proxy 存储库,它可以将 Maven 中央存储库等默认 maven 存储库包装到 p2 更新站点中,但专业版每年的成本约为 800 美元。
  2. 创建一个 eclipse-repository
    您可以创建一个新的 maven 项目, eclipse-repository 其中包含所有您想要的包。然后将创建的工件部署到公共 Web 服务器。

然后,在您的目标平台中,您可以引用 Nexus p2-proxy 存储库或网络托管的 p2-repo。
有谁知道其他方式 - 可能更方便/更便宜?

请帮助我更多地了解第谷令人困惑的世界......
在此先感谢

0 投票
2 回答
2346 浏览

eclipse - Tycho 无法解决从产品到来自不同反应堆构建的 eclipse-feature 的引用

我有两个反应堆版本:

第一个构建了一些捆绑包和相应的功能。成功后clean install,该功能位于我本地的 Maven 存储库中。第谷还生成了 p2 元信息……-p2artifacts.xml和……-p2metadata.xml

第二个构建包含一个基于特性的产品,它引用了第一个反应器中构建的特性。当尝试clean install第谷时抱怨一个未解决的功能 - 另一个反应堆构建中的一个。

未能执行目标 org.eclipse.tycho:tycho-p2-repository-plugin:0.12.0:assemble-repository [...] [“无法满足从 TestApp2 1.0.0 到 my.testlib.feature.feature 的依赖关系。组 [1.0.0.201109081051]。"]

如您所见,我使用的是 Tycho 0.12.0,它应该能够在pomDependencies=consider设置标志后解析本地 maven 存储库的工件,我做到了。

我查看了本地 maven repo 生成的 p2 元信息,发现功能版本有一点不同。p2artifacts.xml 中的功能版本如下:

版本='1.0.0.201109071453'

比较两个版本

只有最后一位不同,可能是时间戳。

有谁知道为什么第谷抱怨未解决的功能?时间戳重要吗?

更新:由于第二次构建的时间戳会更改每个构建,我假设它是当前时间戳。

0 投票
2 回答
407 浏览

command-line - Maven 3:覆盖 POM 中的命令行

我们可以使用命令行覆盖 POM 中定义的属性。

我们能以某种方式产生相反的效果吗?要覆盖 POM 中的命令行参数?

我在命令行中有一个带有“-Dmaven.test.skip -DskipTests -DskipITs”的 Hudson,我无法更改它(管理员在一个月内响应请求),但我还是想运行我的测试..

谢谢)