1.uap项目迁移到idea开发的详细教程(第壹篇)

前言

第壹篇主要是快速入门上手为主,后面会逐渐的详细讲解sg-uap和osgi的关系,以及osgi在idea里面的使用

会有大量的截图,截图与文字相结合一起描述迁移项目的过程

大体步骤:

  1. 迁移的整体思路
  2. 本人笔记本以及项目目录的基本介绍
  3. 前期的铺垫和准备工作(含有简单的tomcat配置)
  4. idea中的项目文件(模块)的各个配置
  5. 项目启动
  6. 个人总结

一、迁移的整体思路

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文件夹记一下,后面有用「一大堆的插件包就在这里」)

uap的客户端目录

sg-uap使用的项目工作空间workspace图片(dabd和dabd-schem是我需要使用的项目和子模块项目,其他的都用uap打包成jar包了):

sg-uap的工作空间

idea使用的项目工作空间workspace4图片(这个图是一个比较细致的截图,后面建立各种目录时,可以参考这个截图):

workspace4的目录结构

三、前期的铺垫和准备工作

1.因为本次是一个简单的迁移教程,所以我们需要把其他依赖但不用的子模块都发布成jar包的形式(用uap的都懂我就不讲了)

发布好的jar包

2.用idea创建一个普通的java项目(建立到workspace4文件夹中,命名为uap-idea,删除项目里面的空模块),具体步骤看截图

创建项目1

选择java》sdk=1.6》)(其他的不用选择)》下一步

新建普通项目

    这里啥也不选择》下一步

创建默认的空项目

     这里新建项目,名称为:uap-idea》(我的项目是在workspace4下面建立的)》完成 即可

创建uap-idea项目

     整个项目就是这个样了,但我不用这些,我要把这个模块删除,然后导入uap的项目

项目创建完毕

 右上角(项目配置)》Project选项卡(这里就是一个简单的配置看一下就好)

项目基本情况

     Modules》点击uap-idea模块》点击上方的“减号”删除此模块

删除项目模块

     删除之后的结果:空空如也

自身模块删除完毕

     关闭“项目配置”后的界面

删除完毕后的项目

 

3.引入workspace里面的主项目:dabd以及自己要开发的子模块:dabd-schem(这个时候肯定会有很多警告和错误提示,跟着截图一步一步来,就没事了)

开始导入项目

    “项目配置” 》Modules》ImportModules(导入模块)》现在开始导入主项目“dabd”》点击OK(确定)

导入dabd项目的中间过程1

     选择“eclipse”模块

导入dabd项目的中间过程2

     选择“Keep project and module files in”,保持模块还在原来的地方

导入dabd项目的中间过程3

    此时idea已经识别出来了一个dabd的项目(到这里应更不会出问题。。。,有问题请截图留言,我一定回复) 

导入dabd项目的中间过程5

     保持跟我一样的选择即可

导入dabd项目的中间过程6

    此时主项目已经导入进来了,把src设置为Sources类型(好像可以自动识别),下面的开发项目类似(就不再文字描述,看图即可) 

导入dabd项目的中间过程7

     下面开始导入开发的项目

导入dabd-scheme项目的中间过程1

导入dabd-scheme项目的中间过程2

导入dabd-scheme项目的中间过程3

导入dabd-scheme项目的中间过程5

导入dabd-scheme项目的中间过程6

导入dabd-scheme项目的中间过程7

导入dabd-scheme项目的中间过程8

     此时两个必要的项目均已导入完毕,下面需要把报错的地方逐一修复

导入dabd-scheme项目的中间过程9

    此时此刻两个项目产生的错误信息如下 

一些错误信息

     先解决主项目:把项目依赖的东西除了jdk(jdk为1.6没有的先自己导入一个来)以外的统统删除(后面我们再重新引入)

删除dadb里面的错误引用1

     删除后的结果,只剩下自己的模块和一个jdk的引用

删除dadb里面的错误引用2

     开发项目也是如此,把该删除的都删除了

删除dadb-scheme里面的错误引用1

    删除后的结构如下 :此时idea也不再报错信息了😂😂😂

删除dadb-scheme里面的错误引用2

         整体项目效果如下:下一步我们要开始引入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(不重命名此文件夹则无法启动项目),细节请参考截图

workspace4的详情信息

         把tomcat6-uap加入到idea中

配置tomcat

         配置tomcat一系列操作:配置tomcat,点击配置

配置tomcat1

         弹出选择tomcat对话框

配置tomcat2

         选择tomcat6-uap文件夹

配置tomcat3

         确定后,修改tomcat服务名称为tocmat-dabd(之前是:Unnamed),到此tomcat配置结束(下面开始了各个依赖包的配置

配置tocmat4


四、idea中的项目文件(模块)的各个配置

         先把公共插件目录下的WEB-IINF/lib下面的这个jar包放入到主项目的lib下面(不放入会导致项目启动时会出发下载jar包的逻辑,先复制过来我们进入下一个环节)(后期会详细讲解为什么要这样做)

特殊的jar包

         这是要项目里面依赖的jar包(主项目里面的lib和其他开发项目打成jar包集合目录)

主项目jar包们

         先把主项目的自身的lib目录添加为一个项目jar包库

lib-jar

         命名为dabd-lib

dabd-lib

         然后把其他辅助的项目jar包(repository-application-plugins)添加为一个项目jar包库

dabd-plugins1

         命名为dadb-plugins

dabd-plugins2

         这里开始添加开发项目的lib,但是右键,功能是灰色的,没法用(我这里不行不代表你那里不行),继续看下面操作

dabd-scheme-lib1

         从项目配置》Libraries》点击加号(添加一个新的jar包库)(现在是刚才已经添加的那两个:dabd-lib和dabd-plugins)

dabd-scheme-lib2

         找到开发项目的lib文件夹(选中文件夹和选中里面的jar包都行)

dabd-scheme-lib3

         点击ok(确定)后会提示,是否把此jar包库添加到指定的项目模块中(因为这是开发项目的lib所以你可以添加到开发项目中,但你可以不加入,后面统一处理)

dabd-scheme-lib4

         我这里默认叫“common-lang3xxx”,您可以重命名一下

dabd-schene-lib5

         我这里重命名为“dabd-scheme-lib”

dabd-scheme-lib6

         到此,我们已经完成了80%的工作,现在还需要在添加两个jar包库,再对两个项目模块进行配置,基本就差不多了

         现在开始添加公共的外部jar包库(就是在workspace4/tomcat6-uap/binsguap-server/WEB-INF/repository/platform/Version2.0.0/里面的jar包库)

         分别添加两个文件夹:infrastructure、thirdparty

第三方-1

         此时把infrastructure添加进来,并把此jar包库,添加到了两个模块中

第三方2

         再把thirdparty也添加进来,同时添加到这两个模块中

第三方3

         此时铺垫工作全部完成:总共引入了五个jar包库

lib包库

         重要的配置:五个jar包库在两个模块中引入情况

        dabd模块里面:dabd-lib是compile模式,其他的都是provided模式!!!

jar包库-引入1

        dabd-scheme模块:dadb-schem-lib是compile模式,其他都是provided模式!!!

jar包库-引入-2

         这里有个需要注意的地方:把dabd-schem模块的paths设置为bin目录(这里可能是默认的,如果是这样就不用改了,如果不是请参考我这个截图),这里如果不是bin,则无法实现热更新

dabd-scheme-2

        把dabd项目配置为一个WEB工程(这里会的就不用看了,不会的请看下面的截图)

        打开项目配置》Facets》添加》Web模式

web1

        选中dabd项目(因为只有dabd项目是标准的web项目结构)

web2

        这里有两个地方需要注意:(非常关键:好多小伙伴就是死在这个配置上面的)

        两个配置:一个是配置web.xml的文件路径,一个是配置WebContent的路径(就参考我的配置来就行)

        配置完后,点击右下角“Create Artifact”(如果没有点击ok就行,然后参考下面Artifacts的配置截图)

web3

Artifacts这里的配置如下:主要是把web功能的编译结构确定了:里面有dadb的类编译路径、web工程根目录路径、web.xml的配置路径、项目依赖的jar包库路径

web5

         这里web工程的最终配置图(这里项目构建名称改为了:dabd)(这里没弄好的话,仔细对比你的配置和我的配置截图)

web6

      一切模块配置就绪!!!!!!


五、项目启动

        tocmat里面添加要发布的web工程(从artifacts里面来的)

tomcat1

       就是dabd这个web工程(也只有这一个),下面的应用上下文名称是/dabd

tomcat2

         我这里出现了启动时,内存不足,所以需要配置一下VM的启动参数:-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m

tomcat4

         tocamt配置就绪

tomcat5

         启动tocmat:这里机器性能有位关键(mac电脑40秒,win配置好的话应该是一分钟左右)

        在控制台输入ss,回车,控制台输出了osgi的启动模块信息

tomcat7

        项目浏览器输入访问地址即可(idea中tomcat启动完毕后会自动打开浏览器)

        输入系统的账号密码,进入系统

tocmat8

        最终系统功能页面 

tomcat8

        到此整个的uap迁移到idea结束!!!

六、个人总结

       本次迁移是一个痛并快乐的迁移。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

       如果您对uap和idea用的都很溜,那么整个过程应该对您来说会比较顺利,其实在我们抽丝剥茧式的把uap中还有osgi框架这块搞明白了,很多事情就比较简单了

       提供一个osgi框架的pdf下载地址:https://dwd.jb51.net/201605/books/OSGiyl_jb51.rar,我们就是通过熟读这个来把uap的项目迁移到了idea中。。。。。。。。

       后期会编写:我们是如何从sg-uap中抽丝剥茧一步步,解读osgi框架的过程,请等待。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

      有问题请留言。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 37
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值