maven常见命令&&依赖&&maven生命周期


maven常见命令(第一次执行命令时,因为需要下载执行该命令的基础环境,所以会从中央仓库下载该环境到本地仓库)
编译:(Maven基础组件,基础Jar)
mvn compile --只编译main目录中的Java文件
mvn test 测试
mvn package 打成jar/war
mvn install 将开发的模块放入本地仓库,供其他模块使用(放入的位置是通过gav决定的)
mvn clean 删除target目录(删除编译文件的目录)
运行mvn命令,必须在pom.xml文件所在目录


依赖
A.jar->B.jar

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

<scope>...</scope>
1.依赖的范围、依赖的有效性
compile(默认) test provided

2.依赖排除
A.jar->B.jar
当我们通过maven引入A.jar时,会自动给引入B.jar
A.jar(x.java,y.java,z.java) B.jar(p.java,c.java,i.java)
A.jar和B.jar之间依赖的本质:z.java->c.java
<!--排除依赖beans -->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
依赖:
commons-fileupload.jar commons-io.jar:虽然我们实际开发时,认为二者rjar必须关联,但是maven可能不这么认为。

3.依赖的传递性:
A->B->C 要使A->C当且仅当B依赖于C的范围是compile

HelloWorldTime->HelloWorld2->junit

多个maven项目(模块)之间如何依赖:p->q
i.p项目install到本地仓库
ii.q项目依赖:
<!--本项目依赖于HelloWorld2项目 -->
<dependency>
<groupId>org.myy.maven</groupId>
<artifactId>HelloWorld2</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
4.依赖原则:为了防止冲突
a.路径最短优先原则
b.路径长度相同
i.在同一个pom.xml文件中有两个相同的依赖(覆盖):后面声明的依赖会覆盖前面声明的依赖(严禁使用本情况,严禁在同一个pom中声明两个版本不同的依赖)
ii.如果是不同的pom.xml中有两个相同的依赖(优先):则先声明的依赖,会覆盖后声明的依赖

(JDK只能够识别source folder中的源码)

在Eclipse中创建maven工程:
1.配置maven:
配置maven版本
配置本地仓库 设置setting.xml

在eclipse中编写玩pom.xml依赖后,需要maven-update proje

package
resources
compile
testResources
testCompile
test

maven生命周期:
生命周期和构建的关系
生命周期中的a b c d e
当我们执行c命令,则实际执行的是a b c


生命周期包含的阶段:3个阶段
clean lifecycle 清理
pre-clean clean post-clean
default lifecycle 默认(常用)


site lifecycle 站点
pre-site site post-site site-deploy
再次强调:在pom.xml中增加完依赖后,需要maven->update project

统一项目的jdk
1.build path:删除旧版本,增加新版本
2.右键项目-属性-Project Factors -java version 该版本(之前存在要改的版本)

通过maven统一jdk版本:
<profiles>
<profile>
<id>jdk-11</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>11</jdk>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
</profile>
</profiles>


maven统一jar版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 统一版本 -->
<myy.world.junit.version>4.0</myy.world.junit.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${myy.world.junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

原文地址:https://www.cnblogs.com/mayouyou/p/13179631.html