Maven面试/工作常用知识-------------基础(自用 , 非小白科普)

本文不作为小白科普 , 只是为了应对面试或者工作中需要解决的问题.
面试的时候从来没有碰到过问maven的,大部分项目构建时才会集中解决依赖问题 , 后期在产品迭代时引入新的依赖才会偶尔处理jar包冲突。

依赖管理

maven对于依赖的管理非常符合java的面向对象思想 , 体现了对资源的复用性.正常java项目中每个项目本地磁盘中都需要放置一份该项目需要的jar包 , 而maven通过pom文件对坐标的声明 , 将项目工程所依赖的jar包统一规范管理 .
jar包统一放在仓库中,仓库分为本地仓库,远程仓库(中央仓库,私服)项目构建时,优先去本地找,本地没有会去私服找,再没有会去中央仓库找,假如在私服找到了,会先往你的本地存一份,提高下次构建的效率,类似缓存的思想.

<dependency>     
	<groupId>junit</groupId>   公司名/组织名
	  <artifactId>junit</artifactId>     项目名称
	  <version>4.12</version>     版本号
  </dependency>

一键构建

maven使用自带的tomcat插件对项目进行清理,编译,测试,打包,部署(很多工具中,都存在不同容器插件,插件和插件之前也会存在冲突,比如编译时使用maven中的tomcat还是本地的tomcat还是idea中的tomcat)

使用maven构建的项目,根据不同的骨架,会自动创建好目录,这些目录格式遵循了maven对一个项目的规范要求 , 比如一个java目录下maven默认是不会让你创建jsp文件的
src/main/java 核心代码
src/main/resource 静态资源
src/main/webapp 页面资源

通过pom文件 , 可以对插件进行控制 , 例如jdk ,tomcat 在执行命令的时候将用指定的jdk进行编译

生命周期

maven的生命周期为
compile 编译 ; 将src/main/java下的代码进行编译,生成target/classes文件夹

test 测试 ;将src/test下的junit测试用例代码进行编译,生成target/test-classes文件夹

package 打包 ; 按照pom文件中规定的打包方式

install 安装 ; 将打好的包放到本地仓库一份

deploy 部署

每个命令都代表一个阶段 ,对于以上命令 , 在执行部署命令时 , 会将compile , test , package , install命令按顺序全部执行一次 , 执行打包时,会将 compile ,test执行一次

jar包冲突

例如编译时 , 需要使用servlet的包 , 保证编译时代码不报红 , 为此就需要将servlet-jsp引入pom文件 , 但此时运行项目时 , 因为tomcat作为web容器已经有一套servlet的包 , 所以导致项目中会出现两套servlet的包 , 一套是项目的pom文件中指定的 , 另一套是tomcat中的 , 此时需要指定pom中的作用域为 仅在编译时期生效 , 为的是编写代码时期 , 代码不报红

<dependency>     
	<groupId>junit</groupId>   公司名/组织名
	  <artifactId>junit</artifactId>     项目名称
	  <version>4.12</version>     版本号
	  <scope>compile</scope> 作用域  (仅在编译时期生效)
  </dependency>

对插件的配置

<build>    
 <!‐‐maven插件‐‐>    
  <plugins>      
   <!‐‐tomcat插件‐‐>      
    <plugin>         
    <groupId>org.apache.tomcat.maven</groupId>         
    <artifactId>tomcat7-maven0plugin</artifactId>         
    <version>2.2</version>
    <configuration>           
     <port>8888</port>(针对这个项目,tomcat启动将占用8888,如果不配置,默认为8080)
     </configuration>       
     </plugin>
  	<plugin>         
      <groupId>org.apache.maven.plugins</groupId>         
      <artifactId>maven‐compiler‐plugin</artifactId>         
      <version>3.2</version>         <configuration>          
       <source>1.8</source>(将使用jdk1.8来进行编译)           
       <target>1.8</target>           
       <encoding>utf‐8</encoding>
      </configuration>
   </plugins>   
</build>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值