当前位置: 首页 > 知识库问答 >
问题:

复制Tycho工件P2依赖项

魏松
2023-03-14

我有一个Tycho构建,它为Xtext DSL功能生成eclipse插件。我现在想做一个maven插件,它可以处理DSL文件。问题是要将DSL插件所依赖的工件放入maven插件中,因为这些工件不在maven存储库中。此外,我希望maven插件自动依赖于DSL插件所依赖的相同工件。

我认为创建一个带有依赖项的 über-jar 将是最好的方法。问题是检索 DSL 插件的依赖项并将其复制到一个目录中,以便我可以构建这个 über-jar。

有人找到解决这个问题的方法了吗?我的搜索只是找到了相反问题的解决方案;将maven依赖项作为(P2)依赖项导入Tycho。

共有1个答案

宓诚
2023-03-14

将打包类型 eclipse-repository 和 includeAllDependencies 开关设置为 true 后,您可以让 Tycho 聚合您的插件及其所有传递依赖项。构建结果是一个 jar 的压缩(和一些 p2 元数据),您应该能够使用 maven-assembly-plugin 将其转换为 uber-jar。

另外需要注意的是:您还不能直接在 eclipse-repository 中包含捆绑包,因此您需要通过功能包含您的捆绑包。

 类似资料:
  • 我们用Maven和Tycho构建了一个Eclipse插件。然而,目前我们仍然通过一堆手动添加的JAR文件而不是Maven来提供所有的项目依赖。这是由于以下原因:(1)依赖项不能通过标准的Eclipse更新站点获得(至少不能在当前版本中获得),(2)依赖项不能作为捆绑包获得。 这些依赖项中最大的部分是Selenium库(API,远程,特定于浏览器的库及其传递依赖项,例如Guava等)。 我浪费了几个

  • 值得说的是,当我在Eclipse内部运行单元测试时(而不是在Maven中),它是有效的。 这是我测试片段中的第谷配置: 正如这里所建议的,我将这个特性作为一个依赖项添加,因为我的测试片段除了它的主机之外还需要一些其他的包,所以我希望这能起作用。

  • 我需要从maven Dependence插件中排除单个工件:复制依赖项。 在文档上:https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html我发现了两个有趣的选择: ExcludeArtifactId,它将排除与给定工件id匹配的所有工件(组id上的通配符) ExcludeGroupId

  • 我试图用maven通过命令行下载一些工件。我只知道工件的基本版本,但是它们在nexus存储库中有一个单独的时间戳。 例如: 工件具有以下坐标。 我想像这样下载工件: 我在文档中找到了选项,但这只会将下载的工件与基本版本一起保存。 编辑: 问题是,我只知道一个工件的基本版本,例如3.0.0-SNAPSHOT,当我尝试像上面一样从nexus下载它时,它失败了,因为nexus中的版本带有时间戳。 mav

  • 我创建了一个带有 打包的第谷项目。该项目包括一些通过 pom.xml 指定的依赖项。相关的pom部分是: 清单是: 该项目仅包含默认包中的一个类,该类使用来自< code > org . TestNG . annotations 的注释来测试编译期间是否包含依赖项。 如果我使用Maven 3.0.4在命令行上构建项目,一切正常。在Eclipse Juno中导入项目后,我收到了多个错误。最重要的一个

  • 我目前正在使用Maven开发一个Java项目。在我的我收到了这个错误。 我添加了这种依赖性 到我的。但错误仍然是一样的。 我是否缺少为依赖项添加存储库?我也没有在我的。 有人能建议我在我的中添加的存储库代码吗?