将JAR依赖项添加到Eclipse插件Maven Tycho构建
開發(fā)OPP項(xiàng)目時(shí),一直困擾著我的是使用硬編碼Java庫依賴項(xiàng)。 我手動(dòng)下載了所用庫的jar ,將其復(fù)制到需要它們的插件中的目錄中,然后將其添加到MANIFEST.MF文件中。
您可能會(huì)問我為什么要這樣做。 好吧,Eclipse插件(或更正確的OSGi項(xiàng)目)是使用稱為“ Tycho”的插件在Maven中構(gòu)建的。 此構(gòu)建過程與標(biāo)準(zhǔn)Java Maven構(gòu)建過程不同,特別是在處理依賴項(xiàng)方面。
OSGi依賴項(xiàng)在MANIFEST.MF文件中定義,而不在項(xiàng)目的POM中定義。 當(dāng)執(zhí)行Maven時(shí),它將查看MANIFEST.MF文件,提取依賴關(guān)系,然后嘗試從POM定義的存儲(chǔ)庫之一下載它們,正如所期望的那樣,該存儲(chǔ)庫的定義與Maven存儲(chǔ)庫不同。
我們熱愛標(biāo)準(zhǔn)。 這就是為什么我們至少需要兩個(gè):-(。
回到我的問題:我在項(xiàng)目中使用了許多簡(jiǎn)單的Java依賴項(xiàng)。 因此,在網(wǎng)上搜索后,我發(fā)現(xiàn)了Apache Felix Maven Bundle插件 (BND)。 在嘗試并再次嘗試正確配置其配置之后,我放棄了。 也許您需要博士學(xué)位來進(jìn)行配置,所以我會(huì)在幾個(gè)月后再回來(希望:-))。
但是,嘿,我是一名開發(fā)人員,我應(yīng)該自己抓癢,那么為什么不開發(fā)一款能夠滿足我需求的Maven插件呢? 是的,好主意! 但是經(jīng)過兩周的工作(按工作量,我的意思是每天只有半小時(shí)才能完成此工作,周末除外),我發(fā)現(xiàn)自己有了一個(gè)簡(jiǎn)單的Maven插件,該插件可以從此處復(fù)制文件,但是學(xué)習(xí)曲線陡峭。
然后,我重新發(fā)明了輪子,因?yàn)樵摻鉀Q方案已經(jīng)發(fā)布在StackOverflow中,并且我已經(jīng)讀了一段時(shí)間,但是卻忽略了它。 上周,在學(xué)習(xí)了更多Maven之后(因?yàn)槲艺诰帉懸粋€(gè)插件),我了解到我可以創(chuàng)建一個(gè)新項(xiàng)目(標(biāo)準(zhǔn)Java maven項(xiàng)目),在該項(xiàng)目中下載依賴項(xiàng),然后將依賴項(xiàng)復(fù)制到我的Eclipse插件項(xiàng)目中。 幾分鐘后,瞧! 有用! 您可以在OPP信息庫中找到結(jié)果。 僅Java項(xiàng)目是com.vainolo.phd.opp.java-dependencies ,這是Maven模塊com.vainolo.phd.opp.utilities所需的。 檢查如何編寫POM文件,以了解其工作原理。 我還將依賴項(xiàng)項(xiàng)目添加為com.vainolo.phd.opp.releng以便將其作為項(xiàng)目的一部分進(jìn)行構(gòu)建。
還有一個(gè)更簡(jiǎn)單的方法來執(zhí)行此操作而無需其他項(xiàng)目,如StackOverflow答案中所述 。 這里,使用特定于插件的配置選擇依賴項(xiàng),在構(gòu)建的初始階段之一(即validate )中直接調(diào)用maven-dependency-plugin插件。 對(duì)此進(jìn)行了嘗試,但是盡管它適用于直接依賴項(xiàng),但并未下載可傳遞依賴項(xiàng)。 這可能是配置問題,但是在此階段,我不會(huì)在此花費(fèi)更多時(shí)間。
或許明年。
編碼愉快!
翻譯自: https://www.javacodegeeks.com/2016/01/adding-jar-dependencies-eclipse-plugin-maven-tycho-build.html
總結(jié)
以上是生活随笔為你收集整理的将JAR依赖项添加到Eclipse插件Maven Tycho构建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 与邻为壑什么意思 与邻为壑的意思
- 下一篇: 人工智能的概念和知识构架_概念验证:玩!