欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Maven

程序员文章站 2022-04-10 14:45:15
...

Maven(项目管理器)

1.Maven:是apach公司一个开源项目.本质就是一个项目管理器.
传统项目的问题:

1 需要把jar复制到项目中,繁琐
2 项目体积更大,不利于维护
3 不利于团队开发
作用:管理依赖(管理项目所需要Jar包);
构建项目(清理、编译、单元测试、打包、安装、部署、运行));

2.Maven安装步骤:
2.1:从官网http://maven.apache.org/download.cgi下载windows版本的maven包
apache-maven-版本号-bin.zip
2.2:解压maven包,解压后有四个目录
bin:maven的脚本运行文件和命令.
boot:存类加载器框架
conf:存放maven配置文件.
settings.xml文件配置仓库的地址.
lib:存放所需要的Jar.
2.3:配置环境变量:我的计算机->右键属性->高级系统设置->环境变量->系统变量
2.3.1:新建->MAVEN_HOME:maven安装路径
(D:\apache-maven-3.6.3-bin\apache-maven-3.6.3)
2.3.2:找到path->在path原路径值的后面;%MAVEN_HOME%\bin
2.4:每次配置好环境变量后,重新打开运行->cmd->mvn -version.

3.Maven检索顺序图

Maven
4.配置Maven仓库
4.1:选择一个目录,新建一个文件夹作为本地仓库.
maven安装包下面建一个文件夹repo.
4.2:设置maven配置文件:打开settings.xml文件
4.2.1:配置本地仓库路径:在settings.xml文件的根节点下面

配置本地仓库的路径<localRepository>本地仓库的路径</localRepository>

4.2.2:配置*仓库的境像(远程仓库):在settings.xml文件中找到

<mirrors>节点,在下面				  配置*仓库的境像
				<!--配置*仓库的镜像-->
	<mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name> 
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>	

4.2.3:配置maven依赖jdk信息:在settings.xml文件中找到节点,在下面配置jdk

		<!--jdk的全局配置-->
	<profile>           
		<id>jdk18</id>           
		<activation>               
			<activeByDefault>true</activeByDefault>
			<jdk>1.8</jdk>           
		</activation>           
		<properties>               
			<maven.compiler.source>1.8</maven.compiler.source>
			<maven.compiler.target>1.8</maven.compiler.target>
			<maven.compiler.compilerVersion>1.8										                                  </maven.compiler.compilerVersion>
		</properties>     
	</profile> 

4.2.4:将maven中conf文件夹中配置好的settings.xml复制
到C:\Users\电脑登录名.m2(如果maven一次都没用过,没有.m2目录就不用配置)

5.将idea与Maven关联上:使用自己下载的maven
Maven

6.将eclipse与Maven关联上:使用自己下载的maven
6.1: 首先使用自己的Maven安装文件替换掉Eclipse插件的Maven,如下图:
Maven

6.2:配置用户自己maven的配置文件
Maven

7.maven项目:
7.1:idea创建maven工程:
7.1.1:第一种:创建Maven的Java Project
Maven
Maven
7.1.2:第二种:idea创建Maven的Java工程
Maven
7.1.3:idea创建Maven版web工程
Maven
Maven

7.2:eclipse中创建maven项目:在package explore中空白地方->new->Maven project->

Maven注意:

<!-- 打包方式 :项目类型         
	POM:MAVEN项目,常用在继承和聚合上        
	JAR:JAVASE项目,没有网页,跟服务器没关系 ,对应java project      
	WAR:JAVAEE项目,跟服务器没关系,对应web project  -->

7.3:maven项目结果
7.3.1:maven项目目录结构:Jar包版本maven项目
src/main/java:存放项目的.java文件
src/main/resources:存放项目资源文件。存放c3p0,Spring,Hibernate配置文件 src/test/java:存放所有测试的.java文件.如Junit测试类
src/test/resources:测试资源文件
target:项目输出位置(可以自动生成)
pom.xml(maven项目核心配置文件,可配置当前项目所依赖的Jar包)

7.3.2:maven项目目录结构:War包版本maven项目
src/main/java:存放项目的.java文件
src/main/resources:存放项目资源文件。如何Spring,Hibernate配置文件 src/test/java:存放所有测试的.java文件.如Junit测试类
src/test/resources:测试资源文件
src/main/webapp:存放前端页面及配置 相当于web项目的webcontent目录
注意:在webapp下自己手动创建WEB-INF目录,在WEB-INF目录复制一个web.xml
target:项目输出位置(可以自动生成)
pom.xml(maven项目核心配置文件,可配置当前项目所依赖的Jar包)

7.4:Maven工程打包方式有三种;

		<packaging>Jar</packaging> 创建Maven的Java工程
		<packaging>war</packaging> 创建Maven的web工程
		<packaging>pom</packaging> 创建父工程,专门用来管理子模块,继承的

7.5:pom.xml配置整个项目所需要外部Jar包(外部Jar包坐标)

	6.3.1:<project>节点中新建一个子节点<dependencies></dependencies>
	6.3.2:<dependencies></dependencies>节点中配置依赖Jar包
	打开https://mvnrepository.com/网页,在搜索框中输入需要的包名
	将打开类似下面路径,放在<dependencies></dependencies>节点											中
eg:	<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>3.1.12</version>
</dependency>

<dependency>
    <groupId>junit</groupId><!--公司或组织名-->
    <artifactId>junit</artifactId><!--项目中,包名-->
    <version>4.12</version><!--版本号-->
    <scope>test</scope> <!--包的使用范围-->
</dependency>

注意:Scope:声明jar包的存活时间
取值说明:
1、provided:编译和测试时需要
2、compile:编译、测试、运行、打包需要 3、runtime:测试、运行、打包需要
4、test:测试
5、system:编译和测试时需要,显示引用,Maven不会检索

7.Maven项目的生命周期:(三套生命周期)

7.1:Clean Lifecycle(Clean生命周期) 在进行真正的构建之前进行一些清理工作。
pre-clean 执行一些需要在clean之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在clean之后立刻完成的工作

7.2:Default Lifecycle(Default生命周期) 构建的核心部分,编译,测试,打包,部署 等等。
compile 编译项目的源代码
install 将包安装至本地仓库,以让其它项目依赖。
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享
process-test-resources 复制并处理资源文件,至目标测试目录
process-resources 复制并处理资源文件,至目标目录,准备打包
test-compile 编译测试源代码
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署
package 接受编译好的代码,打包成可发布的格式,如 JAR
validate
generate-sources
process-sources
generate-resources
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-classes
prepare-package
pre-integration-test
integration-test
post-integration-test
verify

7.3:Site Lifecycle(Site生命周期) 生成项目报告,站点,发布站点。
pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上
8.maven构造项目常用命令(了解,重点知道每个命令做什么用):
mvn clean:清理(删除)编译的文件 --执行clean生命周期中pre-clean,clean
使用插件:maven-clean-plugin:2.5:clean

mvn compile:编译主目录的文件 --执行default生命周期中compile
使用插件: maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile

mvn test: 编译并运行test目录的代码
使用插件: maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test

mvn package:打包项目,jar包或war包
使用插件: maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test
maven-jar-plugin:2.4:jar

mvn install: 安装到仓库 --执行clear生命周期及default生命周期中install前面所有过程
使用插件:maven-resources-plugin:2.6:resources
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources
maven-compiler-plugin:3.1:testCompile
maven-surefire-plugin:2.12.4:test
maven-jar-plugin:2.4:jar
maven-install-plugin:2.4:install

9.(扩展)maven升级web项目出现的问题:
9.1:验证码的Jar包是别人写的,*创建中没有,在web项目中想用:
9.1.1:将验证码的包构建到本地仓库中:
9.1.1.1.将ValidateCode.jar包放在C:\Users\用户名下
9.1.1.2.打开cmd进入jar包所在的目录:
输入代码
mvn install:install -file -DgroupId=cn.dsna.util.images
-DartifactId=ValidateCode -Dversion=1.0 -Dpackaging=jar -Dfile=ValidateCode.jar

DgroupId:group id;
DartifactId:名称;
Dversion:版本;

9.1.2:在web项目中pom.xml中引入坐标

<!--验证码的Jar包-->
<dependency>
  <groupId>cn.dsna.util.images</groupId>
  <artifactId>ValidateCode</artifactId>
  <version>1.0</version>
</dependency>

9.2:Maven版本的web项目默认是web2.3版本不支持el表达式,会报Jsp的错误,怎么解决?

第一种:在jsp文件头上添加如下:<%@ page isELIgnored="false" %>

第二种:在web.xml文件中如下定义:
<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <el-ignored>false</el-ignored>
        <scripting-invalid>true</scripting-invalid>
    </jsp-property-group>
</jsp-config>

第三种:改变web.xml中的头为2.5之上的版本..
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

9.3:项目打包到本地仓库,用猫运行:在idea中的maven管理中点击install->成功后,在本 地仓库中找到打的当前打的war包->丢在tomcat的webapps中(部署)->在tomcat的 bin下startup.bat启动猫(发布)->打开浏览器输入访问项目就可(用户访问).