问题标签 [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.
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 复制到我的本地库中。我的其他插件已经与它们的所有源代码一起作为插件项目存在。我不需要他们的罐子。我可以过滤掉那些吗?我试过这个没有成功:
谢谢
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 依赖项?
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 架构来解决这个问题吗?
请注意,我不想修改插件的版本。
eclipse - 有没有办法在 Eclipse 中不打开或导入依赖包的情况下开发 OSGi 包?
当您使用 eclipse 开发 OSGi 包时,有许多依赖包需要导入和打开。当捆绑包很多时,设置项目既费时又困难,尤其是对新手而言。
我试过 Tycho 插件和 m2e;看来他们不是为了这个目标。
unit-testing - Tycho:在 JUnit 测试失败的情况下如何防止部署?
我得到了eclipse-plugin
一些单元测试。
在 Maven 中,我将单元测试保存在同一个包中,并将 junit 指定为pom.xml
.
现在我想切换到 tycho 并且我读到 tycho 正在寻找一个具有相同名称的包以及一个".tests"
执行的后缀。但是我想将我的单元测试保留在测试包中,这样如果任何测试失败,包的构建就会失败。否则,maven 可能会在单元测试未成功完成的地方安装/部署工件。
有没有办法使用 tycho 将单元测试保存在同一个包中?
您如何管理 tycho 构建中的单元测试?
更新:好的,我现在有两个单独的包 aneclipse-plugin
和eclipse-test-plugin
. Tycho 在同一个反应器中构建它们,但是eclipse-plugin
尽管单元测试失败了,但我的却被部署了。现在我在我的 nexus repo 中有一个损坏的工件......
当单元测试没有成功完成时,有没有办法强制构建失败?
java - 如何在 tycho 中引用 mockito?
我目前正在尝试由 tycho 完成我的构建(约 30 个捆绑包)。在我的单元测试中使用Mockito
时,我遇到了一些令人困惑的问题。
我为测试的包创建了一个片段项目。由于 tycho 应该使用清单解析所需的包,我从.
然后,当我尝试将 mockito 添加到清单中的所需捆绑包时,未列出 mockito。我找到了这篇文章并创建了一个指向 eclipse indigo 的目标平台。eclipse-test-plugin
pom.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的捆绑包的方法:
- Nexus Pro Nexus
专业版支持 p2-Proxy 存储库,它可以将 Maven 中央存储库等默认 maven 存储库包装到 p2 更新站点中,但专业版每年的成本约为 800 美元。 - 创建一个 eclipse-repository
您可以创建一个新的 maven 项目,eclipse-repository
其中包含所有您想要的包。然后将创建的工件部署到公共 Web 服务器。
然后,在您的目标平台中,您可以引用 Nexus p2-proxy 存储库或网络托管的 p2-repo。
有谁知道其他方式 - 可能更方便/更便宜?
请帮助我更多地了解第谷令人困惑的世界......
在此先感谢
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'
比较两个版本
只有最后一位不同,可能是时间戳。
有谁知道为什么第谷抱怨未解决的功能?时间戳重要吗?
更新:由于第二次构建的时间戳会更改每个构建,我假设它是当前时间戳。
command-line - Maven 3:覆盖 POM 中的命令行
我们可以使用命令行覆盖 POM 中定义的属性。
我们能以某种方式产生相反的效果吗?要覆盖 POM 中的命令行参数?
我在命令行中有一个带有“-Dmaven.test.skip -DskipTests -DskipITs”的 Hudson,我无法更改它(管理员在一个月内响应请求),但我还是想运行我的测试..
谢谢)