学习笔记:maven在Idea下的配置,以及基础教程

1.常用命令

  1. archetype
    创建maven项目,根据模板生成项目骨架
  2. compile
    编译,将main中的源代码编译成字节码,放在target/classes目录下
  3. clean
    清理,删除target目录
  4. test
    测试,执行测试类(使用junit),并生成测试报告
  5. package
    打包,将java项目打包成jar包,web项目打包成war包,放在target目录下
  6. install
    安装,将项目的jar包安装到本地仓库,供其它项目使用
  7. deploy
    发布/安装,将项目的jar包安装到远程仓库,供其它项目使用,需要账号密码
  8. site
    生成站点 生成关于项目介绍的网页

注意事项

  1. 所有的命令都要跟在mvn的后面,如mvn test
  2. 所有命令都必须在某个项目的根目录执行,与pom.xml平级
  3. 多个命令可以一起执行

2.生命周期

 maven定义了**三套生命周期**:**clean  default  site**
 其中default生命周期包含:**compile  test  package**
  • 一个项目的构建的过程通常包括:清理、编译、测试、打包、集成测试、部署等
  • 每个生命周期之间是相互独立的,每个生命周期又包含多个阶段,这些阶段又是有顺序的,后续的阶段必须等待前面的阶段执行后才能执行。
  • 如:mvn clean package
    (这个例子中,package是属于default的,而且package排在compile、test之后,所以不需要输入:mvn clean (default)compile test package,只需要输入clean package就可以了

3.在idea中使用maven

A. 配置maven

1,点击settings
在这里插入图片描述
2,输入maven,勾选import Maven projects automatically解决项目依赖问题
在这里插入图片描述
3,设置Maven_home目录
在这里插入图片描述

B. 创建maven项目

1,new 一个module

2,自定义maven,可以选择类型
在这里插入图片描述
3,设置groupId artifactId version

在这里插入图片描述
4,确认信息
在这里插入图片描述
5,成功创建
在这里插入图片描述

C. 执行maven操作

1,右侧打开管理窗口

在这里插入图片描述
2,选择要执行的操作,例如clean
在这里插入图片描述
3,在Command line输入要执行的命令 然后按Execute执行
在这里插入图片描述
4,成功执行maven操作
在这里插入图片描述

5.pom.xml

A.简介

  • pom:project object model 项目对象模型
  • pom.xml 是maven项目的核心配置文件

B.坐标

  • maven通过定义一个坐标,确定一个jar包

  • 坐标包括:groupid,artifactid,version

  • dependency依赖,引入jar包:
    在这里插入图片描述
    1,通过访问https://repo1.maven.org/maven2/
    查找需要的jar包(或者其他网站)坐标
    2,填写以下代码块

  <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
  </dependency>

3,等待一段时间(需要联网,会从中央仓库下载jar包)

C.scope作用域

scope表示依赖作用域,表示依赖中jar包可用的范围

  • test 只在测试代码中使用, 例如: junit
  • compile 在整个项目中使用,参与打包部署 例如:commons-fileupload
  • provided编译测试时需要,运行时不需要 例如:servlet-api(运行时使用tomcat,tomcat含有servlet-api.jar包)
  • runtime 运行测试时需要,编译时不需要 例如:jdbc,mysql
  • system 使用本地系统路径下的jar包,通常是无法从中央仓库下载的jar包 例如:ojdbc.jar

D.properties、plugins

  • properties全局属性,读作: [ˈprɑpərtiz],用来放置一些作用于全局的配置文件,例如:
   <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
  • plugins:插件,可以配置一些maven插件,tomcat插件等

6.maven特性

1.继承特性

继承方式:
1,在父项目的pom.xml加入:

<packaging>pom</packaging>
<name>parent</name>
 <dependencyManagement>
 	<dependencies>
 	//插入依赖
 	</dependencies>
</dependencyManagement>

2,在子项目的pom.xml中插入以下代码

<parent>
	<groupId>父项目groupId</groupId>
	<artifactId>父项目的name</artifactId>
	<version>父项目version</version>
	<relativePath>父项目的相对路径</relativePath>
</partent>

子项目的dependency中不需要再定义version,只需要groupId和artifactId

2.聚合特性

1,在父项目中加入子项目的路径

<modules>
    <module>...</module>
    <module>...</module>
    <module>.../module>
</modules>

2,运行父项目:mvn clean install
3,成功运行子项目们

3.依赖特性

依赖传递,比如使用spring的jar包,只需要定义springframework的坐标,而不需要把所有相关的依赖手动添加,会自动全部下载下来的
作用域:上文提到过,不赘述了

猜你喜欢

转载自blog.csdn.net/weixin_44554519/article/details/106178617