【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
Maven三大组成部分:
1:依赖
2:仓库
3:生命周期和插件
里程碑:SNAPSHOT(快照)-->alpha(内部测试)-->beta(测试)-->release(正式发布)-->GA(完全可用)
user0.0.1-SNAPSHOT-->user0.0.1-Release--->user1.0.0SHAPSHOT -->user1.0.0-Rlease
-->user0.1.0-SNAPSHOT-->user0.1.0-Rlease
主要内容
Maven的安装
Maven的配置
Maven的文件结构
Maven的pom.xml文件
配置与安装:
去官网下载MAVEN压缩包;
解压即可;
配置环境变量M2_HOME等于解压目录路径;
在环境变量path增加%M2_HOME%/bin/;
在环境变量增加内存配置MAVEN_OPTS等于 -Xms128m -Xmx512m(可选)
命令行窗口测试mvn –version;
命令行
创建一个项目使用以下命令,在d:/a目录下执行以下命令:
D:/a> mvn archetype:create -DgroupId=项目的包名 -DartifactId=项目的名称也是创建以后的文件夹名称
快速向导: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>cn.wj</groupId>
<!--项目的名称-->
<artifactId>hello</artifactId>
<!--项目的版本号必须-->
<version>1.0-SNAPSHOT</version>
<!--项目打包后扩展名-->
<packaging>jar</packaging>
<!--项目名-->
<name>hello</name>
<!--中央仓库地址-->
<url>http://maven.apache.org</url>
<!--项目编码等其他信息-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--项目依赖库-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
运行测试
在存在pom.xml的目录下,执行以下命令,都会在当前目录下生成target目录,里面即是编译和测试及打包以后的结果:
mvn compile 即是指编译项目
mvn test 即运行测试
mvn package 即打包命令
mvn site 即生成引用的方式与html帮助文件
mvn clean 即删除target目录。
修改本地仓库地址
默认使用mvn命令行,将会在$USER_HOME/.m2目录下创建本地仓库。
可以通过修改$M2_HOME/config/settings.xml中修改以下配置:
<localRepository>D:/programfiles/.m2/repository</localRepository
Maven的目录结构
bin
包含了mvn的运行脚本mvn.bat,脚本配置java命令;
m2.conf用来配置默认仓库(repository),默认仓库为$USER_HOME/.m2;
boot
只有一个文件,java类加载器;
conf
包含一个非常重要的文件settings.xml;
此目录下的settings.xml文件为全局配置文件;
lib
Maven运行时需要的java类库;
Maven内置的超级pom文件在maven-model-builder-x.x.x.jar,里面包含了maven默认的中央仓库位置;
pom.xml是maven项目的核心;
第一个项目的pom.xml文件
<?xml version="1.0"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.taiji.mvn</groupId>
<artifactId>helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<name>helloworld</name>
<packaging>jar</packaging>
</project>
pom.xml坐标GAV的含义
project根节点
groupId
实际项目ID,一般与实际项目包名定义;
例如:spring项目org.springframework,junit项目就是junit;
artifactId
项目(模块)ID;
通常已实际项目为前缀,例如:spring-core,junit等;
pom.xml坐标含义
.version
定义项目(模块)目前的版本;分为SNAPSHOT(快照)、RELEASE(发布)等;
Jar包的名称artifactId-version.jar,所以artifactId一般以实际项目简称为前缀,例如:spring-core-3.0.5-RELEASE.jar
6.packaging
Maven项目的打包方式,默认为jar。Web项目是war,聚合项目是pom;
7.Name
就是个名字,没啥意义
未完待续
来源:oschina
链接:https://my.oschina.net/u/2510566/blog/666606