1.uap项目迁移到idea开发的详细教程(第壹篇)
前言
第壹篇主要是快速入門上手為主,后面會逐漸的詳細講解sg-uap和osgi的關系,以及osgi在idea里面的使用
會有大量的截圖,截圖與文字相結合一起描述遷移項目的過程
大體步驟:
一、遷移的整體思路
sg-uap是把eclipse封裝了,同時內置了osgi框架,osgi實現了多jar獨立加載,獨立部署;但是sg-uap也同時實現了spring框架,讓開發的子模塊能獨立且充分的利用spring框架,這就比較厲害了;
但是萬變不離其宗,osgi框架是主體,我們只需要研究出,sg-uap是如何把osgi引入的以及如何又把各個子模塊加載進來就可以自行實現sg-uap項目遷移到idea了;
我預先大概說明一下
1.sg-uap項目都有一個主項目,此主項目其實為一個普通的web項目;
2.web項目的作用有三個:
a)每個公司都可以把自己個性化配置或者設置放在此處(主要是安全方面的過濾器)
b)通過web.xml中的listener:“com.sgcc.uap.kernel.web.broker.UapModuleContextListener”,
? ? ? 把sg-uap的自己開發的一個“com.sgcc.uap.kernel.web_2.6.0.v20210421125300.jar”加載到java的內存中(具體里面的細節我會再后期的教程中詳細講解,不在此次講解)
c)再通過web.xml中的servlet:“com.sgcc.uap.kernel.web.server.UapModuleContextServlet”,
? ? ? 把osgi框架加載到內存中,框架jar包就是“org.eclipse.osgi.jar”(默認是*/platform/Version2.0.0/thirdparty/org.eclipse.osgi.jar路徑)
? ? ? 這里也是經過了大量的初始化工作,才最終啟動了osgi的框架(具體里面的細節我會再后期的教程中詳細講解,不在此次講解)
d)整體來講就是:先啟動web項目,web項目的web.xml配置文件,做了大量的初始化操作,然后啟動了osgi框架,整個系統就會開始逐步的把sg-uap的插件包以及自己的各個項目依次加載到內存中,最終啟動完畢。
二、本人筆記本以及項目目錄的基本介紹
1.JDK是1.6_x64的,idea是2018.3的,tomcat6,win7x64系統(系統不是重點,Mac筆記本也沒問題的,因為部分截圖和截圖工具是在mac上操作的)
2.sg-uap客戶端在D盤的UAP Studio里面(2.8的版本)
3.公司的開發項目在D盤的workspace下(sg-uap使用)
4.遷移到idea時,我是在D盤的workspace4(由idea使用)里面建立了一個主項目文件夾(僅僅是文件夾,沒有任何被遷移的項目文件,因為這個新建的項目文件夾是為了引入workspace里面的項目文件夾)
sg-uap的客戶端目錄圖片:(這里有個sguap-server文件夾記一下,后面有用「一大堆的插件包就在這里」)
sg-uap使用的項目工作空間workspace圖片(dabd和dabd-schem是我需要使用的項目和子模塊項目,其他的都用uap打包成jar包了):
idea使用的項目工作空間workspace4圖片(這個圖是一個比較細致的截圖,后面建立各種目錄時,可以參考這個截圖):
三、前期的鋪墊和準備工作
1.因為本次是一個簡單的遷移教程,所以我們需要把其他依賴但不用的子模塊都發布成jar包的形式(用uap的都懂我就不講了)
2.用idea創建一個普通的java項目(建立到workspace4文件夾中,命名為uap-idea,刪除項目里面的空模塊),具體步驟看截圖
選擇java》sdk=1.6》)(其他的不用選擇)》下一步
? ? 這里啥也不選擇》下一步
?? ? 這里新建項目,名稱為:uap-idea》(我的項目是在workspace4下面建立的)》完成 即可
?? ? 整個項目就是這個樣了,但我不用這些,我要把這個模塊刪除,然后導入uap的項目
?右上角(項目配置)》Project選項卡(這里就是一個簡單的配置看一下就好)
?? ? Modules》點擊uap-idea模塊》點擊上方的“減號”刪除此模塊
?? ? 刪除之后的結果:空空如也
?? ? 關閉“項目配置”后的界面
?
3.引入workspace里面的主項目:dabd以及自己要開發的子模塊:dabd-schem(這個時候肯定會有很多警告和錯誤提示,跟著截圖一步一步來,就沒事了)
? ? “項目配置”?》Modules》ImportModules(導入模塊)》現在開始導入主項目“dabd”》點擊OK(確定)
?? ? 選擇“eclipse”模塊
?? ? 選擇“Keep project and module files in”,保持模塊還在原來的地方
? ? 此時idea已經識別出來了一個dabd的項目(到這里應更不會出問題。。。,有問題請截圖留言,我一定回復)?
?? ? 保持跟我一樣的選擇即可
? ? 此時主項目已經導入進來了,把src設置為Sources類型(好像可以自動識別),下面的開發項目類似(就不再文字描述,看圖即可)?
?? ? 下面開始導入開發的項目
?? ? 此時兩個必要的項目均已導入完畢,下面需要把報錯的地方逐一修復
? ? 此時此刻兩個項目產生的錯誤信息如下?
?? ? 先解決主項目:把項目依賴的東西除了jdk(jdk為1.6沒有的先自己導入一個來)以外的統統刪除(后面我們再重新引入)
?? ? 刪除后的結果,只剩下自己的模塊和一個jdk的引用
? ???開發項目也是如此,把該刪除的都刪除了
? ? 刪除后的結構如下?:此時idea也不再報錯信息了😂😂😂
? ? ? ? ?整體項目效果如下:下一步我們要開始引入tomcat和各種依賴包了(下面是重點)
?
? 自己復制出來一個分tocmat6,我把自己的tomcat6命名為tomcat6-uap,并在tomcat6-uap里面的bin文件夾中新建一個sguap-server(不建此文件夾則無法啟動項目)
? ?在workspace4里面建立兩個文件夾:eclipse、tomcat6-uap(這個名字必須與前面的tomcat6-uap一致,不一致則無法啟動項目)
? ?把剛才獨立復制的tomcat6-uap放到eclipse文件夾中;把uap的客戶端目錄里面的sguap-server文件夾復制到workspace4下面的tomcat6-uap文件夾里面里面,
? ?并重命名為binsguap-server(不重命名此文件夾則無法啟動項目),細節請參考截圖
? ? ? ? ?把tomcat6-uap加入到idea中
? ? ? ? ?配置tomcat一系列操作:配置tomcat,點擊配置
? ? ? ? ?彈出選擇tomcat對話框
? ? ? ? ?選擇tomcat6-uap文件夾
? ? ? ? ?確定后,修改tomcat服務名稱為tocmat-dabd(之前是:Unnamed),到此tomcat配置結束(下面開始了各個依賴包的配置)
四、idea中的項目文件(模塊)的各個配置
? ? ? ? ?先把公共插件目錄下的WEB-IINF/lib下面的這個jar包放入到主項目的lib下面(不放入會導致項目啟動時會出發下載jar包的邏輯,先復制過來我們進入下一個環節)(后期會詳細講解為什么要這樣做)
? ? ? ? ?這是要項目里面依賴的jar包(主項目里面的lib和其他開發項目打成jar包集合目錄)
? ? ? ? ?先把主項目的自身的lib目錄添加為一個項目jar包庫
? ? ? ? ?命名為dabd-lib
? ? ? ? ?然后把其他輔助的項目jar包(repository-application-plugins)添加為一個項目jar包庫
? ? ? ? ?命名為dadb-plugins
? ? ? ? ?這里開始添加開發項目的lib,但是右鍵,功能是灰色的,沒法用(我這里不行不代表你那里不行),繼續看下面操作
? ? ? ? ?從項目配置》Libraries》點擊加號(添加一個新的jar包庫)(現在是剛才已經添加的那兩個:dabd-lib和dabd-plugins)
? ? ? ? ?找到開發項目的lib文件夾(選中文件夾和選中里面的jar包都行)
? ? ? ? ?點擊ok(確定)后會提示,是否把此jar包庫添加到指定的項目模塊中(因為這是開發項目的lib所以你可以添加到開發項目中,但你可以不加入,后面統一處理)
? ? ? ? ?我這里默認叫“common-lang3xxx”,您可以重命名一下
? ? ? ? ?我這里重命名為“dabd-scheme-lib”
? ? ? ? ?到此,我們已經完成了80%的工作,現在還需要在添加兩個jar包庫,再對兩個項目模塊進行配置,基本就差不多了
? ? ? ? ?現在開始添加公共的外部jar包庫(就是在workspace4/tomcat6-uap/binsguap-server/WEB-INF/repository/platform/Version2.0.0/里面的jar包庫)
? ? ? ? ?分別添加兩個文件夾:infrastructure、thirdparty
? ? ? ? ?此時把infrastructure添加進來,并把此jar包庫,添加到了兩個模塊中
? ? ? ? ?再把thirdparty也添加進來,同時添加到這兩個模塊中
? ? ? ? ?此時鋪墊工作全部完成:總共引入了五個jar包庫
? ? ? ? ?重要的配置:五個jar包庫在兩個模塊中引入情況
? ? ? ? dabd模塊里面:dabd-lib是compile模式,其他的都是provided模式!!!
? ? ? ? dabd-scheme模塊:dadb-schem-lib是compile模式,其他都是provided模式!!!
? ? ? ? ?這里有個需要注意的地方:把dabd-schem模塊的paths設置為bin目錄(這里可能是默認的,如果是這樣就不用改了,如果不是請參考我這個截圖),這里如果不是bin,則無法實現熱更新
? ? ? ? 把dabd項目配置為一個WEB工程(這里會的就不用看了,不會的請看下面的截圖)
? ? ? ? 打開項目配置》Facets》添加》Web模式
? ? ? ? 選中dabd項目(因為只有dabd項目是標準的web項目結構)
? ? ? ? 這里有兩個地方需要注意:(非常關鍵:好多小伙伴就是死在這個配置上面的)
? ? ? ? 兩個配置:一個是配置web.xml的文件路徑,一個是配置WebContent的路徑(就參考我的配置來就行)
? ? ? ? 配置完后,點擊右下角“Create Artifact”(如果沒有點擊ok就行,然后參考下面Artifacts的配置截圖)
Artifacts這里的配置如下:主要是把web功能的編譯結構確定了:里面有dadb的類編譯路徑、web工程根目錄路徑、web.xml的配置路徑、項目依賴的jar包庫路徑
? ? ? ? ?這里web工程的最終配置圖(這里項目構建名稱改為了:dabd)(這里沒弄好的話,仔細對比你的配置和我的配置截圖)
? ? ? 一切模塊配置就緒!!!!!!
五、項目啟動
? ? ? ? tocmat里面添加要發布的web工程(從artifacts里面來的)
? ? ? ?就是dabd這個web工程(也只有這一個),下面的應用上下文名稱是/dabd
? ? ? ? ?我這里出現了啟動時,內存不足,所以需要配置一下VM的啟動參數:-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
? ? ? ? ?tocamt配置就緒
? ? ? ? ?啟動tocmat:這里機器性能有位關鍵(mac電腦40秒,win配置好的話應該是一分鐘左右)
? ? ? ? 在控制臺輸入ss,回車,控制臺輸出了osgi的啟動模塊信息
? ? ? ? 項目瀏覽器輸入訪問地址即可(idea中tomcat啟動完畢后會自動打開瀏覽器)
? ? ? ? 輸入系統的賬號密碼,進入系統
? ? ? ? 最終系統功能頁面?
? ? ? ? 到此整個的uap遷移到idea結束!!!
六、個人總結
? ? ? ?本次遷移是一個痛并快樂的遷移。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
? ? ? ?如果您對uap和idea用的都很溜,那么整個過程應該對您來說會比較順利,其實在我們抽絲剝繭式的把uap中還有osgi框架這塊搞明白了,很多事情就比較簡單了
? ? ? ?提供一個osgi框架的pdf下載地址:https://dwd.jb51.net/201605/books/OSGiyl_jb51.rar,我們就是通過熟讀這個來把uap的項目遷移到了idea中。。。。。。。。
? ? ? ?后期會編寫:我們是如何從sg-uap中抽絲剝繭一步步,解讀osgi框架的過程,請等待。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
? ? ? 有問題請留言。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
總結
以上是生活随笔為你收集整理的1.uap项目迁移到idea开发的详细教程(第壹篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝牙地址解析(NAP/UAP/LAP)
- 下一篇: 英语读书笔记-Book Lovers D