IDEA将项目打包为指定class文件的jar
轉(zhuǎn)自:https://blog.csdn.net/makang456/article/details/86699375
【背景】
? ? 公司最近要和某大公司合作,將本公司的產(chǎn)品提供給其它公司單獨(dú)部署售賣,為了讓產(chǎn)品中重要的服務(wù)具備防君子不防小人的作用,于是就寫了一個(gè)單獨(dú)的服務(wù),通過aop攔截所有請求驗(yàn)證頒發(fā)的證書從而達(dá)到效果。
?? ?這個(gè)單獨(dú)驗(yàn)證的服務(wù)需要以jar的形式嵌入到服務(wù)中,其中為了避免jar包的版本沖突問題,所以需要將校驗(yàn)服務(wù)打包為只包含本項(xiàng)目中對應(yīng)class文件的jar(不包含任何maven依賴的jar)。
?? ?注:這樣所有第三方j(luò)ar以及對應(yīng)的版本全都交由最終引入驗(yàn)證服務(wù)jar的服務(wù)去管理(ps:編寫SDK的時(shí)候一般也通過這樣的方式)
【環(huán)境】
? ? idea版本:2017.1
?? ?jdk版本:1.8
?? ?windows版本:win8
?? ?注:小編這個(gè)驗(yàn)證服務(wù)為maven項(xiàng)目
【過程】
? ? 第一步:先通過idea中的install將項(xiàng)目中的java文件編譯為class文件
?? ?第二步:File——>Project Structure——>Project Settings——>Artifacts——>單擊綠色加號——>JAR——>Empty
? ? ? ??
?? ?第三步:創(chuàng)建包文件夾,要和項(xiàng)目中的包結(jié)構(gòu)一致(因?yàn)槊總€(gè)class的最上面package已經(jīng)在項(xiàng)目中有明確指向了)
? ? ? ??
?? ?第四步:加入自己指定要打的class文件(該文件在第一步編輯完成之后的class文件中尋找),不同的包中的class需要先建立包結(jié)構(gòu)再分別選擇
? ? ? ??
?? ?第五步:執(zhí)行編譯打包出對應(yīng)的jar
? ? ? ??
【總結(jié)】
? ? 小編首先收獲的是慢慢的喜悅與成就感,下面就列舉一下自己的成長總結(jié):
?? ?1.對IDEA將項(xiàng)目打包為指定class文件的jar有了深刻的理解(和自己之前寫的IDEA中添加普通web項(xiàng)目形成對比)
?? ?2.針對于在遇到問題提取百度搜索關(guān)鍵詞有了深入思考
?? ?3.遇到問題到最終相信自己能夠解決問題有了更加堅(jiān)定的信念
【擴(kuò)展】
? ? 如果要寫一個(gè)jar工具,并且將依賴的包都集成進(jìn)去的話請參考:解決問題--maven項(xiàng)目和需要依賴打成一個(gè)jar包(親測好用)
?? ?如果需要控制引入的jar的周期可以修改pom文件對應(yīng)jar的scope標(biāo)簽,詳情參考:maven中scope屬性的
?? ?注:這兩個(gè)擴(kuò)展內(nèi)容小編沒有自測,只是在查詢前期針對于概念不太明確,所以這里就做為參考內(nèi)容先放到這里,以后需要的話會詳細(xì)研究測試再出相關(guān)博文。
轉(zhuǎn)載于:https://www.cnblogs.com/duende99/p/11490470.html
總結(jié)
以上是生活随笔為你收集整理的IDEA将项目打包为指定class文件的jar的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apizza+导出html文档,apiz
- 下一篇: matlab 梁代码,方舟生存进化梁龙鞍