maven jar仓库 :存放maven项目使用的jar包.
中央仓库,存放99%免费开源项目jar包,apache公司负责维护的,以T为单位的存储.
例如 : struts2-core-2.3.24 版本
maven项目通过坐标去仓库中,引入需要的jar包
groupId 公司信息, org.apache.struts
artifactId 项目信息, struts2-core
version 版本信息, 2.3.24
如果仓库中jar包很多,也可以对仓库创建索引提升查询速度.
pom文件存放maven jar包的坐标.
maven依赖管理 : 就是对jar包管理的过程.
项目的一键管理:
一键构建,实际是指,对于项目的某个流程动作,可以通过maven一个命令实现(编译---测试--- 运行 --打包---安装)
什么是构建?
指的是项目从编译 --- 测试 --- 运行 --打包 ----安装整个过程都交给maven进行管理,这个过程称为构建.
maven_home 的环境变量配置
%MAVEN_HOME%\bin;
maven_home 是maven程序的安装路径.
注意实现 : maven环境变量配置,必须要求,配置过JAVA_HOME变量名;
JAVA_HOME 必须是到jdk的安装目录可以看到bin;
JAVA_HOME 路径,不要有(x86)
配置环境变量是为了在命令行输入的命令,电脑会到path路径中寻找,你输入的命令,mvn.
maven工程的目录结构 :
src 源码文件夹
main
java 开发的java代码;
resources 开发使用的配置文件;
webapp 相当于WebCotent 存放web工程的资源文件夹,css,jsp,image
text
java 测试使用的java代码
resources
pom.xml文件 是maven工程的核心配置文件,存放maven工程的坐标信息和maven项目使用的jar包坐标信息,其余的一些查询配置.
只能满足maven工程目录结构的项目,才能使用maven命令运行.
根据maven约定,一个比较标准的maven java web项目, 结合eclipse通常可以看到结构如下 :
src/main/java java主要代码存放目录
src/main/resources java配置文件存放目录
src/test/java java测试代码存放目录
JRE System Library jre中的一些jar包映射
Maven Dependencies 根据pom.xml配置的依赖而导入的jar包映射
src/main/webapp web相关的文件,如html等
src/test 这个目录暂时还没用过
target maven项目输出目录,例如生成多的war包
pom.xml maven项目最重要的一个文件
Maven命令:
compile :
compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下.
test :
test是maven工程的测试命令,mvn test,会执行src/test/java 下的单元测试类.
clean :
clean是maven工程的清理命令,执行clean会删除target目录及内容.
package :
package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包.
install :
install 是maven工程的安装命令,执行install将maven打成jar包或者war包发布到本地仓库.
deploye部署命令 :
是将打成的jar包或者war部署到公司私服服务器.
某些工具类,处理字符串,格式化日期,解析xml文件.
从运行结果中,可以看出:
当后妈的命令执行时,前面的操作过程也都会自动执行,在同一生命周期内运行后面的命令,会自动执行前面的命令.
三套生命周期 :
maven 对项目构建过程分为三套相互独立的生命周期,请注意这里说的是"三套",而且"相互独立",这三套生命周期分别是:
Clean Lifecycle 在进行真正的构建之前进行一些清理工作.
Default Lifecycle 构建的核心部分,编译,测试,打包,安装,部署等.
Site Lifecycle 生成项目报告,站点,发布站点.
jar包冲突问题 :解决办法
<!-- maven项目使用jar包的坐标节点 -->
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<scope>provided</scope> <!-- 这个就解决jar包冲突问题 -->
</dependency>
</dependencies>
Maven的目录结构 :
bin : 放入了一些命令 : mvn tomcat:run.
boot : 放了一些引导程序,类加载器.
conf : 配置文件.
lib : maven本身运行所需的jar包.
pom.xml的配置文件 :
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.baidu</groupId>
<artifactId>struts_maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.24</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 设置编译版本为1.7 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<argLine>-Dfile.encoding=UTF-8</argLine>
</properties>
</project>
依赖范围包括 :
依赖范围 : 对于编译classpath有效 对于测试classpath有效 对于运行时classpath有效 例子------------------------------
compile Y Y Y spring-core
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y JDBC驱动
system Y Y - 本地的,Maven仓库之外的类库.
网友评论