关于web项目部署以及迁移再‘追记’一下

    之前一直在用idea社区版,竟然不能集成tomcat运行,最后没有办法只能用maven-tomcat-plugin来跑, 前面用着还挺顺手的,但是后面由于练习需要,得配置多个context,即多个web项目用于读取图片。  这下难题来了,网上各种找资料,都没有找到合适的。自己也打算去配置,或者去看官方说明文档,但是考虑到可能要花费很多时间,只能作罢。

    然后将项目整体从社区版搬到专业版上面来,之前一直以为这个迁移很麻烦,其实也没有。  就是注意在复制粘贴的时候,要考虑到类的包结构,复制粘贴相应的源代码包带对应的源代码路径下,不然的话包结构会打乱,会涉及到很多的修改,变得很麻烦。   应为之前是一个maven工程,而搬迁过来的是 web工程,因此,结构上面有一些区别。 其实这些只是按照ide的法则构建的包,实际编译构建后的包跟原来的包路径是没有多大联系的,所以从这一意义上来说,各种五花八门的ide反而增加我们对原本程序的理解难度。 

    需要注意的是,我们除了要复制元源代码路径,还要把我们的一些配置文件给复制过去,并且我们复制过去了之后,要将其设置为配置目录的根路径,方法为:

        关于web项目部署以及迁移再‘追记’一下 

    我们可以分别将自己的测试路径,源代码路径考进来。  并且配置让ide识别出来。  

    另外一个比较奇怪的就是,这些我们能配置,那么如何让ide识别我们的目录结构为web项目呢?、

            一种方法就是完全新建一个webApplicaton项目,然后复制粘贴进来,当然,这种方法显得不怎么高档了,作为一个程序员逼格不够。

             另一种方法就是: 我们手动让ide识别我们这个是一个web项目,就idea而言,识别的标志是这样的: 关于web项目部署以及迁移再‘追记’一下。  怎么做呢?  上图把:

                    关于web项目部署以及迁移再‘追记’一下

 

    配置完后,点击apply。   

    然后 ,点击ok。   回去看,达到我们的效果了。  欧了。 

    接下来记录下我们部署的时候选项的区别吧:  上图:

                关于web项目部署以及迁移再‘追记’一下

    可以看到他给我们提供了两个选项: artifact (成品,制品),以及external Source。   artifact是idea作为一个导出的配置而设置的,因为之前导出java Application也设置过这个。 配置方式如下: 

                关于web项目部署以及迁移再‘追记’一下

 

    那么它们有什么区别呢?  external Source其实就是选择已经build成功的war包,然后作为一个web项目给配置到tomcat里面。  而artifact是我们已经配置过,但是没有build的项目,我们再选择的时候它会自动给我们识别出来。 这里关于build有多种途径,常见的如点击右键,选择build... 的。   另外还有一种就是:点击关于web项目部署以及迁移再‘追记’一下然后就可以了。   有时候我们点击配置的时候可能没有artifact的选项,这时候可以现在上面第二张图的底部加上一个  build artifact选项就可以了。   

     关于配置都弄好了,接下来就是运行了。  

      之前再用eclipse好像没有怎么注意,就是在ide集成的时候,可以配置访问路径,也就是说不按照我们的项目名称去访问,而是按照我们设定的去访问,像这样: 关于web项目部署以及迁移再‘追记’一下

       唐僧西天取经,历经九九八十难,还差一难。    

        因此我们肯定还必须得克服一个困难才能取到真经。  嘿嘿。

        让项目跑起来吧,走你!    一切看似都如此正常。 

        进入浏览器,发现出现404,而且后台这边控制台除了第一次能够接收到打印的消息,显示了一个 spring-dispatcher 初始化完成后就没有下文了。 

        现在判断有两个可能原因,并且其中一个已经被证实:

                一,tomcat7.0以及一下的版本不支持  web3.0应用,或者不支持spring 4还是什么的,具体记不太清了,但是这里有一个坑,记录一下以后才能绕开。

                二,spirng-mvc配置没有生效,可能是由于没有正确配置读取  resources ,即配置文件的根路径。 

        关于版本的问题现在能记住的应该有三次遇到过:  第一个就是今天这个问题;  第二个是 用jdk9跟较低版本eclipse集成的时候会报错。  第三个是:spring与 fast-json配置集成的时候由于版本问题抛错。   之前一直的理念就是 版本都是向下兼容的,看来不尽然。   除了这几个例子,还有一个鲜明的例子就是python2,与python3,它们甚至不兼容。  所以,这些坑能绕就绕。  你说一个小小的程序员碰到业务bug或者配置问题倒还能勉强应付一下,碰到这种版本不兼容,非功能性问题的时候只能干瞪眼哈哈哈哈,而且还会花费大量的时间去处理,最后才发现是这么个问题,后面简直要吐血而亡。    

        最后一点记录一下,就是我们配置了那些  marked directory as .. 有什么用呢?  举个简单的例子:   

            关于web项目部署以及迁移再‘追记’一下

    编译器帮我们做的事情如下: 

                关于web项目部署以及迁移再‘追记’一下

        可以非常惊奇的看到:  它把这些东西放到了它们应该在的地方,嘻嘻。   比如resources,比如配置文件。 

        快上课了,在记录一下另外几个文件夹的理解吧。 不一定准确:  .ideal记录了这个项目的相关信息,比如改动记录,比如项目的依赖等等,目录结构。   相对的,campusStore.iml记录的则是这个模块的相关信息。 

       嗯就这样,加油!