掌握maven

掌握maven

在Maven选项下的Runner中配置VM Options为“-DarchetypeCatalog=internal”,这样如果本地已有相关插件就不会在联网下载了。

如何使用骨架创建java项目:
勾选骨架-->选择 maven-archetype-quickstart
使用骨架创建java项目与不使用骨架创建的区别:
main目录下没有resource文件夹
会自动帮我们创建一个java类,类里有个main方法
pom.xml除了groupId\artifactId\version以外,还有其他的。
src下没有test目录
如何使用骨架创建web项目:
勾选骨架-->选择 maven-archetype-webapp
pom.xml会多出很多没用的东西(name/properties/build)

pom.xml 相关:

<packaging></packaging> 	
	war   	web工程-war打包方式 	
	jar	java工程-jar打包方式(不指定时-默认) 	
	pom	聚合项目打包方式

<dependency> 	jar包坐标

<build> 	使用的maven的插件

下面的可以去掉,一般不需要:

<name>项目名称 	<url>访问案例 	<properties>pom文件中的变量信息

项目目录main添加java目录 mark as source directory让其合法 编写Java代码
项目目录main添加resources目录 mark as resource directory让其合法
此时web工程的目录结构以及pom.xml文件已经修改完毕,可以使用了。

设置jdk编译版本为1.8:
pom.xml添加编译插件

<build> 		
	<plugins> 			
		<groupId>maven插件 			
		<artifactId>编译插件 			
		<configuration>
			<source>版本号
			<target>版本号
			<encoding>UTF-8

以上就把maven的编译插件改为了1.8

代码报红–>添加jar包:
pom.xml添加如下,输入jar包关键字后idea会自动提醒

<dependency> 		
	<groupId>公司组织的名称(如果是域名就要反转倒序)
	<artifactId>项目名
	<version>版本号

如果不知道填写什么,去https://mvnrepository.com/ 中搜索后拷贝即可,此时报红的代码alt+enter
–>import class导包即可消红。

web.xml要配置servlet的访问路径,具体在此不赘述了。

maven生命周期

maven的compile指令用来将.java文件编译为.class文件到target/classes目录。
maven的test指令用来执行src/test/java下的单元测试类。注意:
在pom.xml要添加单元测试的依赖包

<dependencies> 		
	<dependency> 			
		<groupId>junit 			
		<artifactId>junit 			
		<version>4.12

如果是打印中文却输出的是乱码,maven–runner–vm options 添加 : -Dfile encoding=gbk

扫描二维码关注公众号,回复: 11939346 查看本文章

maven的clean指令用来清除target目录及内容。
maven的package指令能将java工程打包为jar包,将web 工程打包成war包。会被存放在target目录下。
maven的install指令能将当前项目安装到本地仓库里,怎么去找到呢,借助坐标(=maven路径下的位置)。

Maven 指令的生命周期:maven对项目的构建分为三套独立的生命周期,IDEA中的maven是默认的生命周期指令。
注意:当生命周期中的操作所对应指令执行时,之前的生命周期操作指令也会执行。(即运行package指令,会将其上的命令(不算clean)都执行了。)

maven概念模型图:
在这里插入图片描述

maven依赖范围:maven依赖范围

总结:
默认引入 的 jar 包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )(target/lib目录可以看到有相应jar包)
servlet-api 、 jsp-api ------- provided (编译、测试 有效, 运行时无效 防止和 tomcat 下 jar 冲突)
jdbc 驱动 jar 包 ---- runtime (测试、运行 有效 )
junit ----- test (测试有效)
依赖范围由强到弱的顺序是: compile>provided>runtime>test

聚合和继承

聚合和继承通常是结合使用的,聚合不等同于继承,它们的作用是不同的。聚合是将多个模块的工程汇聚到一起,而继承则是指明某个模块工程要继承另一个模块功能/jar包/数据。

pom表示的就是聚合工程

依赖版本锁定:
在父工程的pom.xml添加 dependencyManagement  (依赖版本锁定),不会在父工程中添加依赖,只是设置依赖的版本.

	<dependencies> 			
		<dependency>
			拷贝过来

就可以不用在子工程的pom.xml加上版本了 	
当你修改了子项目,一定要重新install。

最佳写法—版本号写在properties变量当中,方便修改:
如:

<properties>设置文件中的变量信息 		
	<servlet.version>2.5
依赖范围对依赖传递的影响:

依赖调节原则:

深度小的优先,相等的话,按声明顺序优先。

猜你喜欢

转载自blog.csdn.net/AnlaGodness/article/details/104066704