Maven浅学习试水笔记

Maven入门:

Maven:

是一个基于Java平台的自动化构建工具

Maven有什么作用:

1.增加第三方jar
2.管理jar包之间的依赖关系(自动管理关联下载的jar包,并且不会冲突)
将项目拆分成若干个模块

Maven命令:

命令功能解释
compile编译只编译main目录之中的java文件
test测试针对于项目中的关键点进行测试,亦可用项目中的册俄式代码去测试开发代码
package打包将项目中包含的多个文件,压缩成一个文件,用于安装或部署
install安装将打包之后的结果,放到本地仓库,供其他项目使用。
clean清理删除编译的结果,为重新编译做准备

maven约定的目录结构:

项目
-src
 -main :程序功能代码
  -java Java代码
  -resources 资源代码、配置代码
 -test :测试代码
  -java
  -resources
pom.xml :项目对象模型(和src同级)

gav:(确定坐标)

<groupId>org.lanqiao.maven</groupId>			<groupId>域名反转.大项目名</groupId>
<artifactId>Maventest</artifactId>				<artifactId>子模块名</artifactId>	
<version>1.0-SNAPSHOT</version>					<version>版本编号</version>

Maven依赖:

什么是依赖:

commons-fileupload.jar----> commons-io.jar
A中的某些类需要使用B中的某些类,则称为A依赖于B

配置依赖:

在项目的pom.xml中配置如下代码

<dependencies>
	<dependencies>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>			<!--gav寻找本地仓库是否有,无则去中央仓库-->
		<version>4.0</version>
		<scope>test</scope>
	</dependencies>
</dependencies>

在Maven项目中,如果要使用一个当时存在的jar或模块,则可以通过依赖实现(去本地仓库、远程仓库、中央仓库去寻找)

依赖的范围、依赖的有效性:

默认设置为compile

compiletestprovide
主程序(main)×
测试程序(test)
部署(运行)××

设置范围:

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

依赖排除:

 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
设置依赖排除
 在dependency中写

<exclusions>
 	<exclusion>
    		<groupId></groupId>
    		<artifactId></artifactId>		//不需要写版本
  	</exclusion>
</exclusions>

依赖的传递性:

A.jar -> B.jar -> c.jar 数学上A.jar->C.jar
但是Java里不一定:要使A.jar -> C.jar
则必须是B在compile范围内依赖于C(利用继承,也可以)

Maven声明周期:

生命周期和构建关系:
生命周期中的顺序:a b c d e
当我们执行c命令执行顺序为:a b c

生命周期包含的阶段:三个阶段
clean lifecycle :清理
  命令:pre-clean clean post-clean
default lifecycle :默认
site lifecycle :站点
  命令:pre-site site post-site

多个Maven项目(模块)之间如何依赖:

<dependency>
  <groupId>Maventest</groupId>
  <artifactId>Maventest</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

依赖原则:
  为了防止冲突
  a.路径最短优先原则
  b.路径长度相同时:
    ①在同一个pom.xml文件中有两个相同的文件:
     后面声明的依赖会覆盖前面的声明的依赖(禁止使用这种情况)
     ②在不同的pom.xml上,有两个相同的依赖:
先声明的依赖,会覆盖后声明的依赖

通过maven统一jdk版本:

<profiles>
	<profiles>
		<id>jdk-17</id>
		<activation>
			<activeByDefault>true</activeByDefault>
			<jdk>1.7<jdk>
		</activation>
		<properties>
			<maven.compiler.source>1.7</maven.compiler.source>
			<maven.compiler.target>1.7</maven.compiler.target>
			<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
		</properties>
	</profiles>
</profiles>

pom.xml中的变量的定义

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

使用的时候通过调用
${project.build.sourceEncoding}
来获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值