【JavaWeb-28】Maven仓库、目录结构、命令和生命周期、添加jar包和插件

1、如果是一个maven项目的话,进入到该项目下,可以直接用下面的命令运行项目:

mvn tomcat:run

——甚至都不要求安装eclipse或者tomcat,因为maven会利用自己的tomcat插件来运行。启动的时候还打印出项目访问url。比较方便。

——其实,以上命令执行时,maven帮我们进行了编译,生成了一个target文件,里面有classes文件夹,存放了编译后的文件。

2、Maven仓库。

——maven程序有settings.xml文件,里面是主要配置。我们可以看到它有一个本地仓库的位置,默认就是我们经常用的.m2下。
这里写图片描述

——上面那个就是我们的本地仓库。我们这个本地仓库最初肯定几乎没什么jar包和文件,都是随着项目不断增多逐渐增加出来的。那怎么增加的呢?就是从中央仓库下载的。也就是说,如果我们运行maven项目的话,它发现需要jar包的话,就去本地仓库找,没找到的话就去中央仓库找,找到了就下载到本地仓库,下一次就不要去下载了。

——但是,我们都知道中央仓库是Apache官方维护的,里面大约有亿级别数量的jar包。国内访问下载速度基本像乌龟,所以有的公司会自己弄一服务器搭建一个远程仓库,俗称“私服”。以后我们本地没有,就先会去私服取,私服没有就去中央仓库下载,这么一个层级。

3、Maven项目的目录结构。

——目录结构大致如下。也基本就是这样子,因为如果乱动的话,会导致无法编译。
这里写图片描述

这个虽然长得不一样,但是主要结构是相似的。
这里写图片描述

——这里面有差别的是,以前我们的配置文件大部分是随意放的,比如直接放在src下,这里面为什么要放在resources下面呢?右击项目查看属性,看下面的图,发现它会直接把resources下的文件编译到classes中。以前我们的web项目这里是把src下的文件编译到classes中,这就是maven项目和之前项目的区别,所以可以在resources中写配置文件。
这里写图片描述

4、maven的一些命令。

——我们上面说了mvn tomcat:run,除了这个还有下面这个。什么意思?我们之前不是说了mvn tomcat:run执行完之后,会在项目中生成一个target文件嘛,这个文件就是编译后产生的文件,那么这个clean就是清除编译文件的作用,因为无论如何它不可能清除我们源代码啊。也就是删除掉target文件夹。

mvn clean

——除了这个还有下面这个。编译。当然这个编译也是生成一个target文件,但是有所不同,它只编译main下面的源代码。test里面的不编译。

mvn complie

——所以才有这个。只编译test下面的。

mvn test

——打包。

mvn package

这个打包文件放在哪里?还是在target中。打包的文件名字是什么后缀是什么?这都在项目的主pom.xml中约定好了:
这里写图片描述

——还有一个是发布。发布的时候其实也执行了compile和package等步骤,并且把war包放在了本地仓库。但是其实没有什么用,因为本地仓库是管理jar包的依赖,war包没有什么用。以后我们做java project的时候需要打成jar包时可能有用。

mvn install

5、maven生命周期。

——第一个生命周期是clean生命周期,只需要知道clean属于它就行。

——第二个是default生命周期,里面有很多命令(deploy发布到私服上的命令),但只需要重点知道compile、test、package、install这4个命令,后面的覆盖前面的流程。

——第三个是site生命周期,里面有site命令。执行后,可以在target目录下生成一个site目录,里面放了一些html静态页面,描述这个项目的,类似于用matlab生成jar包时有一个说明文档一样的东西。

——为什么要说生命周期。其实就是一个顺序的问题。不同生命周期的命令可以同时使用,同一个生命周期的也能同时使用,但是因为同一个生命周期的后面的命令会包括前面的命令流程,所以根据不需要用2个。

6、Eclipse Mars版本以上的都自身集成了m2e插件,所以我们使用maven时候不需要自己安装插件了。可以在preferences中看看有没有maven这个菜单。

——但是,它的默认版本可能不满足我们的需求,修改的话,直接在下面add一个,然后选中我们新增的即可。
这里写图片描述

——修改完这个之后,还需要修改User Settings,目录选择我们自己maven文件下面的settings,选中后,下面的local repository会自动变换过来。

这里写图片描述

7、我们创建(new)一个maven项目的时候,一般都会勾选skip archetype selection,因为不勾选的话,创建出来的项目是缺少文件夹的,需要我们手动补全,比较麻烦。创建的时候需要填写坐标信息,这个类似于我们创建Android和iOS项目的时候,填写的都是类似的。

这里写图片描述

9、一般创建完maven项目之后,会在项目的pom文件中报错说确实web.xml文件。我们只需要在webapp下面创建一个WEB-INF\web.xml即可,一般是去拷贝一个。

10、在项目的pom.xml中需要添加编译版本。就是build那个标签,去拷贝。添加完一般会有报错,但不是某一个文件的报错,而是整个项目,这时候需要右击项目-maven-update project即可。

11、我们创建一个servlet之后,系统会在web.xml中自动添加映射,并且自动增加一个命名空间,这个命名空间和已有的重复,所以会报错,需要手动删除一行。

12、我们创建的servlet也会报错,是因为缺少jar包。我们直接在pm.xml中添加dependencies。之后点击保存,错误就消失了。这个时候我们查看项目中有一个maven dependencies的文件夹,里面都是我们引入的jar包,但这个jar包的路径都是指向本地仓库。

13、我们运行项目的时候,可以右击项目,run as时选择build…这个选项,在出来的地方直接输入tomcat:run即可。
这里写图片描述

14、添加依赖有很多种方式。我们可以直接在pom.xml上右击-maven-Add Dependency,或者在pom.xml文件中右击一样选择。或者如下的方式,直接不在xml格式中,而是在界面中直接操作。操作的时候选择依赖时可以搜索,如果没有索引的话,需要在Maven Repositories中重建索引,这个窗口没有的话,需要显示出来。我们在窗口中操作后,会在xml中生成相应的代码,当然直接写代码也行。
这里写图片描述

15、实战中,比如我们需要导入struts的jar包,之前我们需要核心包还要导入struts的依赖包,现在我们只需要导入核心包即可,也就是用上面的方法添加一个struts2-core的jar包,这样它的依赖包也会一并被添加进来,在下面的地方我们可以看到包之间的依赖关系。
这里写图片描述

16、我们在导入jar包的时候,有一个scope选项,有下面4种取值,每一种取值根据不同的情况来选择。
——比如我们在做项目的时候缺少jsp-api或者servlet-api的jar包,但是这个jar包在打包的时候tomcat会提供,所以相当于只需要我们在编译和测试的时候需要,所以我们就可以把scope选择为“provided”。它表示只在编译和测试的时候需要,运行和打包时候不需要用它,我们可以打包一下看看lib中,发现时没有这2个jar包的。

——如果选择test的话。表示只在test的时候需要,其他几个阶段都不需要,那么我们就选择test。比如junit的jar包。

——如果选择runtime的话,表示编译的时候不需要、测试时需要、运行时不需要、打包时需要。比如数据库驱动包。

——如果选择compile的话,几个阶段都需要。比如struts2-core的jar包。

17、maven插件。
——添加插件的话,就在pom.xml文件中写这样的即可。
这里写图片描述

——当然,你觉得界面操作更好的话,右击pom.xml,选择maven,选择Add Plugin,找到想要的插件插入即可。
这里写图片描述

——比如我们默认使用了一个tomcat,但我们想要其他的版本,就可以在这里添加tomcat的插件,甚至可以在pom.xml里面修改对应的代码,修改默认端口和路径。

<configuration>
    <port></port>
    <path></path>
</configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值