ShanTianQi

Maven

Maven基础


第一章 概述


1.1概述


传统项目管理状态分析:

Maven的本质:Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

20220411120954


第二章 使用


2.1Maven仓库


仓库:用于存储资源,包含各种jar包。

分类:

私服的作用:

20220401224606

仓库配置:

20220411131525

修改本地仓库默认位置

国外中央仓库由于下载速度缓慢,这里建议用阿里云的镜像仓库。

20220411122025


2.2Maven目录结构


20220401225842


2.3Maven常用命令


插件创建工程

Java工程

mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} 
-DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false

Web工程

mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} 
-DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false

2.4Maven生命周期


三套生命周期:

在同一套生命周期中,执行后面的操作,会自动执行前面的所有操作

例:运行打包命令,会自动进行编译和测试。

20220411161959

20220411162028

20220411162133

插件

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.1</version>
      <!--
      <executions>
      	<execution>
      		<goals>
      			<goal>jar</goal>  源码打包
      		</goals>
      		<phase>generate-test-resources</phase> 在这个阶段执行
      	</execution>
      </executions>
	  -->
    </plugin>
  </plugins>
</build>

2.5Maven坐标


坐标:被Maven管理的资源的唯一标识

打包方式:packaging:


2.6依赖管理


一、依赖配置

<dependencies>
	<denpendency>
		<groupId></groupId>
		<artifactId></artifactId>
		<version></version>
	</denpendency>
</dependencies>

二、依赖传递

依赖具有传递性

格式:

<dependencies>
	<denpendency>
         <!--项目1的坐标-->
		<groupId></groupId>
		<artifactId></artifactId>
		<version></version>
	</denpendency>
</dependencies>

依赖传递冲突问题

可选依赖

<dependencies>
	<denpendency>
		<groupId></groupId>
		<artifactId></artifactId>
		<version></version>
        <!--
		<optional>true</optional>
		-->
	</denpendency>
</dependencies>

可选依赖指对外隐藏当前所依赖的资源——不透明

排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本——不需要

<dependencies>
	<denpendency>
		<groupId></groupId>
		<artifactId></artifactId>
		<version></version>
        <!--
         <exclusions>
         	<exclusion>
         		 <groupId></groupId>
			    <artifactId></artifactId>
         	</exclusion>
         </exclusions>
		-->
	</denpendency>
</dependencies>

三、依赖范围

20220411161211

依赖范围的传递性

20220411161121


Maven高级


第三章 分模块开发与设计


3.1模块拆分


一、ssm_pojo拆分

二、ssm_dao拆分

三、ssm_service拆分

四、ssm_control拆分

分模块开发


第四章 聚合


4.1聚合



第五章 继承


5.1继承



聚合与继承


第六章 属性


属性类别

一、自定义属性

二、内置属性

三、Setting属性

四、Java系统属性

五、环境变量属性


第七章 版本管理


工程版本

20220413181257


第八章 资源配置


配置文件引用pom属性


第九章 多环境开发配置


多环境兼容

20220413182619

多环境配置

<!--创建多环境-->
<profiles>
	<!--定义具体的环境:生产环境-->
    <profile>
		<!--定义环境对应的唯一名称-->
        <id>pro_env</id>
		<!--定义环玩中专用的属性值-->
        <properties>
			<jdbc.ur1>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.ur1>
        </properties>
		<!--设置默认启动-->
        <activation>
			<activeByDefault>true</activeByDefault>
        </activation>
	</profile>
		<!--定义具体的环境:开发环境-->
    <profile>
		<id>dev_env</id>
         ....
	</profile>
</profiles>

加载指定环境


第十章 跳过测试


一、使用命令跳过测试

二、使用界面操作跳过测试

20220413183632

三、使用配置跳过测试

<plugin>
	<artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.1</version>
	<configuration>
		<skipTests>true</skipTests><!--设置跳过测试-->
         <includes> <!--包含指定的测试用例-->
			<include>**/User*Test.java</include>
         </includes>
		<excludes><!--排除指定的测试用例-->
			<exclude>**/User*Testcase.java</exclude>
        </excludes>
	</configuration>
</plugin>

第十一章 私服


11.1Nexus私服


20220413185804

20220413190041

仓库的分类

20220413201842

发布到私服

20220413202405

#Maven