将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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何查看一个网站是否部署了SSL证书?

如何才能确定一个网站是否部署了安全的SSL证书呢? 答:能用https方式访问的站点 如果此网站部署SSL证书,则在需要加密的页面会自动从 http:// 变为 https:// ,如果没有变,你认为此页面应该加密,您也可以尝试…

页面加载时模块移入动画---wow

首先官网下载&#xff1a;https://github.com/matthieua/WOW animate.css wow.js 1&#xff0c;在头部引用animate.css <link rel"stylesheet" href"css/animate.css">2&#xff0c;body底部引入wow.js 且初始化一下 <script src"js/wow.…

人工智能的概念和知识构架_概念验证:玩! 构架

人工智能的概念和知识构架我们正在开始一个新项目&#xff0c;我们必须选择Web框架。 我们的默认选择是grails&#xff0c;因为团队已经拥有使用它的经验&#xff0c;但是我决定给Play&#xff01; 和Scala有机会。 玩&#xff01; 有很多很酷的东西&#xff0c;在我的评估中&a…

团队-科学计算器-模块测试过程

项目托管平台地址&#xff1a;https://gitee.com/mamamayun/KeXueJiSuanQia/tree/master/calculator_soul3.5 模块测试:进行加减乘除运算 测试方法:反复进行计算 其他补充说明: 无 转载于:https://www.cnblogs.com/dunianze/p/8092874.html

linux 系统安装mongodb数据库---方法2

我是安装在/home/mongodb 1&#xff0c;进入/home/mongodb wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.7.tgz tar -zxvf mongodb-linux-x86_64-4.0.7.tgz cd mongodb-linux-x86_64-4.0.7/ 创建两个目录 存放数据库和日记 mkdir -p logs mkdir -p dat…

网络排错命令工具

ping tracert nslookup dig netstat 转载于:https://www.cnblogs.com/changha0/p/8111134.html

JLBH示例4 – QuickFix vs ChronicleFix基准化

在这篇文章中&#xff1a; 使用JLBH测试QuickFIX 观察QuickFix延迟如何通过百分位数降低 比较QuickFIX和Chronicle FIX 如JLBH简介中所述&#xff0c;创建JLBH的主要原因是为了测量Chronicle-FIX引擎。 我们使用了JLBH的所有功能&#xff0c;特别是吞吐量杠杆和协调遗漏的…

设计模式----java的单例模式

单例模式&#xff08;Singleton Pattern&#xff09;是一个比较简单的模式&#xff0c;它确保某一个类只有一个实例&#xff0c;而且自行实例化并向整个系统提供这个实例。今天我们就来学习一下单例模式的用法。有生之年&#xff0c;一起去看看这个美丽易碎的世界。凡有等待&am…

linux下安装pm2

提前安装node linux下安装pm2 全局安装 npm install pm2 -g安装完成后可以查看pm2的所在目录 创建软连接----根据上面的安装目录创建 ln -s /home/node/nodejs/lib/node_modules/pm2/bin/pm2 /usr/local/bin/查看进程 pm2 list安装成功&#xff01;&#xff01;&#xff…

主机关机后第二天就无法开机_工控机几种常见的在开机或关机后不能正常使用的故障处理方法汇总...

工控机开机启动时我们经常会碰到各种不能正常使用的问题&#xff0c;下面我们把这类故障现象及处理方法在这里给大家汇总分析一下&#xff0c;希望你在碰到类似的问题时&#xff0c;能给你们提供一定的帮助&#xff01;故障现象一&#xff1a;工控机在开机过程中出现死机故障.故…

搭建PHP本地服务器(XAMPP)

1.下载XAMPP集成包 https://www.apachefriends.org/download.html2.启动前修改配置文件httpd.conf的端口号&#xff0c;例如&#xff1a;Listen 80803.启动Apache、MySQL4.找到XAMPP安装目录&#xff0c;并在xampp/htdocs下面新建一个文件夹作为你的网站根目录&#xff0c;譬如…

jboss as7 下载_JBoss AS 7:定制登录模块

jboss as7 下载JBoss AS 7很整洁&#xff0c;但是文档仍然很缺乏&#xff08;错误消息没有那么有用&#xff09;。 这篇文章总结了如何创建自己的兼容JavaEE的登录模块&#xff0c;以对部署在JBoss AS上的Web应用程序的用户进行身份验证。 提供了一个工作的基本用户名密码模块。…

网站添加页面热力图--百度统计

1&#xff0c;注册百度统计的账户并登录 https://tongji.baidu.com/web/10000307684/welcome/login 2&#xff0c;新增网站 管理-网站列表-自有网站-新增网站 3&#xff0c;新增网页热力图 基础报告-页面点击图-新增点击图 4&#xff0c;复制统计代码 把统计的代码放到…

pandas中inplace_pandas回顾小结(二)

上一篇&#xff1a;橘猫吃不胖&#xff1a;pandas回顾小结&#xff08;一&#xff09;​zhuanlan.zhihu.comIndexIndex也有很多种类型&#xff0c;官方文档介绍&#xff1a;Index objects - pandas 1.1.4 documentationindex是可以包含重复值的df pd.DataFrame([[1,2,3],[4,5,…

beta总结

总结随笔 项目预期计划 完成Alpha阶段未完成的功能&#xff0c;并对Alpha阶段做出的项目做出一些修改&#xff0c;比如增加一些功能&#xff0c;美观页面等。 现实进展 经过7天的Beta冲刺&#xff0c;项目预期计划里所希望做得到的全部完成了&#xff0c;实现了增加学生老师&am…

统计网页访问量

1&#xff0c;注册账户&#xff0c;登录 https://www.umeng.com/ 2&#xff0c;生成统计代码 产品-网站统计-立即使用-添加站点-统计代码 生成的代码&#xff1a; <script type"text/javascript">document.write(unescape("%3Cspan idcnzz_stat_icon_…

Swing应用程序中的CDI事件可将UI与事件处理分离

在享受了几年围绕CDI构建我的代码的乐趣之后&#xff0c;使用它根据众所周知的模式来构造我的代码非常自然。 CDI是一种旨在在Java EE应用程序服务器中使用的依赖项注入机制&#xff0c;这可能被视为不利。 但是&#xff0c;我想证明它可以在Java SE应用程序中使用并且具有巨大…

keras 多层lstm_机器学习100天-Day2403 循环神经网络RNN(训练多层RNN)

说明&#xff1a;本文依据《Sklearn 与 TensorFlow 机器学习实用指南》完成&#xff0c;所有版权和解释权均归作者和翻译成员所有&#xff0c;我只是搬运和做注解。进入第二部分深度学习第十四章循环神经网络循环神经网络可以分析时间序列数据&#xff0c;诸如股票价格&#xf…

新手上路之django项目开发(一)-----创建项目并运行

一&#xff0c;创建项目 1&#xff0c;PyCharm创建 或者 2&#xff0c;django-admin startproject mysite mysite 是项目名。 二&#xff0c;配置settings.py文件 创建templates目录&#xff0c;static目录 settings.py文件中加入&#xff1a;os.path.join(BASE_DIR, ‘tem…

lisp语言画阿基米德线_中国油画艺术表达着艺术家思想情感,而且展现了油画语言独特之美...

感谢大家阅读&#xff0c;在阅读之前&#xff0c;麻烦您先点击上面的“蓝色字体”&#xff0c;再点击“关注”&#xff0c; 因为微信更改了推送规则&#xff0c;推文不再按照时间线显示&#xff0c;如果不点『在看』或者没有『星标』&#xff0c;可能就看不到我们的推送了&…