问题标签 [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 - 如何在不影响功能的情况下将一个大的 Jenkins 工作/项目拆分成更小的工作?
我们正在努力改进我们的 Jenkins 设置。到目前为止,我们有两个目录:/plugins 和 /tests。
我们的项目是一个 Eclipse Plugins 的多模块项目。/tests 文件夹中的测试插件是片段项目,依赖于 /plugins 中相应的生产代码插件。
到目前为止,我们只有一项 Jenkins 工作,它检查了 /plugins 和 /tests,构建了所有这些并产生了 Surefire 结果等。
我们现在正在考虑将项目拆分为与我们提供的功能相对应的较小的工作。看来我们试图做到这一点的方式并不理想。
我们尝试了以下方法:
- 我们为核心功能创建了一个工作。该作业检查整个 /plugins 和 /tests 目录并仅构建该功能所包含的插件。该作业有一个单独的 pom.xml,它定义了核心工件并讲述了该功能中包含的模块。
- 我们为应该在功能插件上运行的测试创建了一个单独的作业。此作业使用来自核心作业的克隆工作区。该作业将在构建核心功能后运行。
我不知何故认为这不是最佳的。
- 例如,只有核心作业可以更新签出的文件。如果只更新测试,核心功能不需要重新构建,但它会。
- 一旦我有一个依赖于核心功能的功能,这个功能要么需要使用核心功能工作区的克隆,要么检查它自己的 /plugins 和 /tests 副本,这会导致膨胀。
- 使用克隆的工作区,我无法更新我的来源。所以当我有一个特性依赖于另一个特性时,只有更新和构建核心特性才能完成这项工作。
我想我在这里遗漏了一些基本的东西。有人可以帮忙吗?肯定有一个更简单的方法。
编辑:如果一切正常,我将尝试制定我认为理想情况下会发生的情况:
- 检查功能组件是否已更改(即可以对其进行更新)
- 如果更改,构建功能
- 如有必要,构建依赖特征(即检查 ob 对应的作业)
- 构建功能本身
- 如果构建成功,开始功能测试工作
- 让我看看功能作业中的测试作业的结果
最后,项目工作应该
- 做一个夜间构建
- 查看 /plugins 和 /tests 的所有来源
- 全部构建,全部测试,将结果发送到 Sonar
此外,如果不需要每晚构建,那将是整洁的,因为项目功能的构建和测试结果将结合在项目工作结果中。
这样的事情可能吗?
tycho - 如何调试 maven tycho 插件?
我按照http://wiki.eclipse.org/Developing_Tycho中提到的步骤下载了 tycho 源代码。要调试 eclipse 项目(使用 maven tycho),我按照http://docs.codehaus.org/display/MAVENUSER/Dealing+with+Eclipse-based+IDE中提到的步骤
现在,当我运行 maven build 并启动远程调试应用程序时,它给出的错误如下:
Failed to connect to remote VM. Connection refused.Connection refused: connect
如何获取 eclipse-maven 端口号?
还有其他方法可以调试 tycho 吗?
谢谢。
eclipse - 如何使用 Tycho 将版本保留在包含在 eclipse 插件中的库的文件名中
我有一个使用 Tycho 0.12.0 构建的插件。此插件具有(快照)maven 依赖项,例如foobar:0.1.1-SNAPSHOT
. 这种依赖关系会定期更新(每天)。物理文件包含快照的日期和时间 (foobar-0.1.0-20120507.135021-6.jar)。我想用快照构建,因为我想用最新的开发版本进行测试。
因此,当我构建项目时,更新的依赖项会按预期复制到lib/
目录中,并且编译和构建正常。
但是,MANIFEST.MF Bundle-ClassPath 没有得到更新,所以当插件安装时,它实际上并没有工作,因为类路径不正确。
我当前使用的解决方案是将 maven-dependency-plugin 正在写入的文件的名称覆盖为 be foobar-0.1.1-SNAPSHOT.jar
,但我更愿意保留快照的完整版本号,以便我可以参考它。这可能吗?是否可以使用正在使用的 SNAPSHOT 依赖项的完全限定名称更新 MANIFEST.MF,还是我必须自己手动操作 MANIFEST.MF?
我可以自己编写一些东西来操纵 MANIFEST.MF,但我想知道是否有更好的方法来做到这一点。
rcp - 构建 RCP 应用程序时在 Tycho 中进行 p2.inf 过滤
我正在使用 tycho 构建一个 RCP 应用程序。RCP 应用程序使用 p2 及其自更新功能在 p2.inf 文件中配置存储库。奇迹般有效。
现在我想在 p2.inf 文件中引入一个占位符 ${updatesiteurl} 并根据其构建的环境将其替换为 URL。但不幸的是,它被替换为空字符串而不是环境变量,我猜这是因为 tycho 或 p2 导演替换了一些转义字符(例如“:”,例如 ${58})。
有什么想法可以解决这个问题吗?我考虑过明确声明资源插件并将其绑定到较早的构建阶段,但这也不起作用......
eclipse - Eclipse 产品配置:为“arch”设置 launcherArgs
eclipse 产品配置有“launcherArgs”部分,可以全局指定或为任何支持的平台指定。我们为win32
as构建产品x86
,x86_64
我希望根据 arch 属性生成不同的 .ini。具体来说:这是一个内部应用程序,JVM 被部署到每个客户端的同一个目录中,但在 32 位和 64 位机器之间有所不同。
我们使用 maven/tycho 构建。
eclipse - 替换产品 ico 文件时出现 Tycho 错误
我们正在使用 tycho v0.13 和 maven 3.0 来构建我们的产品。
我们在构建时收到以下错误/警告
错误 - 7 图标未在 C:\Users\AppData\Local\Temp\p2.brandingIron7115583353836584113\launcher.exe 使用 D:\Builds\workspace\plugins\icons\app-icon.ico 替换
ico 文件都是正确的。因此,窗口图标被标准的 eclipse 图标所取代。
java - 使用 Tycho 项目构建 eclipse 功能时偶尔出现错误
我有一个基于 OSGi 的应用程序的 Maven/Tycho 构建,它偶尔会因异常而失败。
我有大约 20 个 eclipse 功能,它似乎与实际功能没有任何关系(它可能是每次都失败的不同功能,而且通常构建工作正常)
这不是灾难,但我想在某个时候修复这个问题,而且我真的不知道如何进一步调试这个问题,除非深入研究 Tycho 代码或开始弄乱随机设置。
这是否与任何人敲响警钟?
系统:Fedora Linux JVM:OpenJDK 运行时环境 (IcedTea6 1.11.3) (fedora-67.1.11.3.fc16-x86_64) Maven:3.0.3 Tycho:0.15.0
eclipse - Tycho 测试因 java.lang.NoClassDefFoundError 失败:junit/framework/AssertionFailedError
我完全被这个弄糊涂了。据我了解,它应该可以工作,但我不知道为什么。
我有一个 tycho 构建,它只在 eclipse 工作台中运行一些测试。但是,我的所有测试都因这种异常而失败:
这对我来说没有意义。 org.junit
并且org.junit4
是运行测试的包以及包含AbstractCommandTest
. 这些测试在我的工作空间内运行时通过了,那么为什么 maven/tycho 无法加载 junit 类?
如果有帮助,我很乐意提供更多信息,例如指向 github 存储库的链接。
编辑:提供更多细节
github 仓库在这里:https ://github.com/grails/grails-sts-tests
你可以看到它是一个简单的、单一的插件,只运行一些测试。测试套件由来自指定为依赖项的其他存储库中的插件的测试组成。请注意,位于其他存储库中的测试插件在另一个 CI 服务器上运行,并且没有 NoClassDefFoundError 问题。我查看了其他 CI 服务器并没有发现任何不同(不幸的是,此 CI 服务器不可公开访问,因此我无法共享指向它的链接)。
显示问题的 hudson 构建作业在这里:http ://hudson.grails.org/job/grails-sts-tests-2.0.x/17/console
maven - 使用 Maven 开发 OSGi 应用程序时,我应该先使用 POM 还是先使用 MANIFEST?
使用 Maven 开发 OSGi 应用程序时有两种主要方法:POM-first 和 MANIFEST first。
我正在寻找以表格形式显示每种方法的优缺点的答案。
更具体地说,我还想知道它与:
- 工具集的成熟度
- 供应商独立性
- 易于开发(包括寻找可以在工具上进行开发的人)
- 兼容性
- 避免 ClassNotFound
- 避免手工作业
java - Eclipse RCP - 定义依赖关系的所有可能性?
在 Eclipse RCP 项目中定义依赖项的所有可能性列表是否存在?也许被资源过滤?
可能的依赖:
- 来自其他 Eclipse RCP 插件
- 按包,没有明确定义插件
- jar 库
- ...