将JAR依赖项添加到Eclipse插件Maven Tycho构建

开发OPP项目时,一直困扰着我的是使用硬编码Java库依赖项。 我手动下载了所用库的jar ,将其复制到需要它们的插件中的目录中,然后将其添加到MANIFEST.MF文件中。

您可能会问我为什么要这样做。 好吧,Eclipse插件(或更正确的OSGi项目)是使用称为“ Tycho”的插件在Maven中构建的。 此构建过程与标准Java Maven构建过程不同,特别是在处理依赖项方面。

OSGi依赖项在MANIFEST.MF文件中定义,而不在项目的POM中定义。 当执行Maven时,它将查看MANIFEST.MF文件,提取依赖关系,然后尝试从POM定义的存储库之一下载它们,正如所期望的那样,该存储库的定义与Maven存储库不同。

我们热爱标准。 这就是为什么我们至少需要两个:-(。

回到我的问题:我在项目中使用了许多简单的Java依赖项。 因此,在网上搜索后,我发现了Apache Felix Maven Bundle插件 (BND)。 在尝试并再次尝试正确配置其配置之后,我放弃了。 也许您需要博士学位来进行配置,所以我会在几个月后再回来(希望:-))。

但是,嘿,我是一名开发人员,我应该自己抓痒,那么为什么不开发一款能够满足我需求的Maven插件呢? 是的,好主意! 但是经过两周的工作(按工作量,我的意思是每天只有半小时才能完成此工作,周末除外),我发现自己有了一个简单的Maven插件,该插件可以从此处复制文件,但是学习曲线陡峭。

然后,我重新发明了轮子,因为该解决方案已经发布在StackOverflow中,并且我已经读了一段时间,但是却忽略了它。 上周,在学习了更多Maven之后(因为我正在编写一个插件),我了解到我可以创建一个新项目(标准Java maven项目),在该项目中下载依赖项,然后将依赖项复制到我的Eclipse插件项目中。 几分钟后,瞧! 有用! 您可以在OPP信息库中找到结果。 仅Java项目是com.vainolo.phd.opp.java-dependencies ,这是Maven模块com.vainolo.phd.opp.utilities所需的。 检查如何编写POM文件,以了解其工作原理。 我还将依赖项项目添加为com.vainolo.phd.opp.releng以便将其作为项目的一部分进行构建。

还有一个更简单的方法来执行此操作而无需其他项目,如StackOverflow答案中所述 。 这里,使用特定于插件的配置选择依赖项,在构建的初始阶段之一(即validate )中直接调用maven-dependency-plugin插件。 对此进行了尝试,但是尽管它适用于直接依赖项,但并未下载可传递依赖项。 这可能是配置问题,但是在此阶段,我不会在此花费更多时间。

或许明年。

编码愉快!

翻译自: https://www.javacodegeeks.com/2016/01/adding-jar-dependencies-eclipse-plugin-maven-tycho-build.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值