在开发过程当中会用到maven,因此对maven进行了简单的学习。java
准备工做web
将下载的文件加压,而后设置maven环境,对于有java开发经验的人,应该是很easy的。如的maven的环境是: G:\maven\apache-maven-3.3.1
个人电脑----属性----高级----环境变量----新建apache
变量名:M2_HOME
变量值:G:\maven\apache-maven-3.3.1windows
找到path环境变量
在环境的变量的尾部加上:;%M2_HOME%\bin;,注意前面的分号哦,固然你也能够直接在path路径的尾部直接加上 G:\maven\apache-maven-3.3.1\bin,只是上面的方式更优雅一点。oracle
打开命令提示符(开始----运行----cmd),检查maven环境是否配置成功。运行下面命令app
mvn -veclipse
Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-14T04:10:27+08:00) Maven home: G:\maven\apache-maven-3.3.1 Java version: 1.7.0_09, vendor: Oracle Corporation Java home: C:\Java\jdk1.7.0_09\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 8", version: "6.2", arch: "x86", family: "windows"
接下来须要修改下仓库地址,仓库用于存放咱们项目因此来的全部的jar
个人仓库路径:G:\maven\repo,这个路径你能够随便建立。
打开maven的安装目录,进入到G:\maven\apache-maven-3.3.1\conf,编辑setting.xml文件,设置咱们建立的仓库路径webapp
<localRepository>G:/maven/repo</localRepository>
设置完成以后,能够用一个命令验证一下。在命令提示符中执行:maven
mvn help:system工具
这个命令会打印出全部的java系统属性和环境变量。若是运行没有错误,在咱们建立的那个仓库目录中会多出不少文件、这些文件就是从maven的中央仓库下载到本地仓库的。
在命令提示符中执行:
mvn archetype:generate -DgroupId=com.app -DartifactId=first-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
对上面命令解释一下:
-DgroupId 组织标识(包名) -DartifactId 项目名称 -DarchetypeArtifactId 指定ArchetypeId,maven-archetype-quickstart,建立一个Java Project;maven-archetype-webapp,建立一个Web Project -DinteractiveMode 是否使用交互模式
ps:由于是第一次构建项目,全部依赖的jar包都要从maven的中央仓库去下载,因此须要等待一段时间。
标准maven项目的结构
└─src ├─main │ └─java │ └─com │ └─app └─test └─java └─com └─app
src/main/java 存放项目的源代码
src/test/java 存放测试源代码
若是要存放一些配置文件,能够再创建一个目录src/main/resource存放,如存放log4j.properties等
顺便了解下pom.xml文件。
pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
pom.xml文件是能够继承的,大型项目中,子模块的pom.xml通常都会继承于父模块的pom.xml
刚建立的项目中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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.app</groupId> <artifactId>first-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>first-app</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
节点元素说明
<project> pom文件的顶级节点 <modelVersion> object model版本,对Maven2和Maven3来讲,只能是4.0.0 <groupId> 项目建立组织的标识符,通常是域名的倒写 <artifactId> 定义了项目在所属组织的标识符下的惟一标识,一个组织下能够有多个项目 <packaging> 打包的方式,有jar、war、ear等 <version> 当前项目的版本,SNAPSHOT,表示是快照版本,在开发中 <name> 项目的名称 <url> 项目的地址 <dependencies> 构建项目依赖的jar <description> 项目的描述
Maven参数
-D 传入属性参数
-P 使用pom中指定的配置
-e 显示maven运行出错的信息
-o 离线执行命令,即不去远程仓库更新包
-X 显示maven容许的debug信息
-U 强制去远程参考更新snapshot包
例如 mvn install -Dmaven.test.skip=true -Poracle
其余参数能够经过mvn help 获取
Maven经常使用命令
mvn clean # 清理项目生产的临时文件,通常是模块下的target目录
mvn compile # 编译项目主代码
mvn test-compile # 编译测试代码
mvn package # 项目打包工具,会在模块下的target目录生成jar或war等文件
mvn test # 测试命令,或测试src/test/java下junit的测试用例
mvn site-deploy # 生产站点目录并打包
mvn install # 模块安装命令,将打包的jar/war文件复制到你的本地仓库中,供其余模块使用
mvn clean package # 先清除再打包
mvn jar:jar # 打成jar包
-Dmaven.test.skip=true # 跳过测试(同时会跳过test compile)
mvn deploy # 发布命令,将打包的文件发布到远程,提供其余人员进行下载依赖
mvn eclipse:eclipse # 生成eclipse配置文件,导入到eclipse开放
mvn archetype:generate # 说明以下: 模块建立命令, 执行命令后,会提示选择建立项目的模版,这里选18(maven-archetype-quickstart)
mvn help:help # 查看帮助信息
建立web项目的命令以下:
mvn archetype:generate -DgroupId=com.app -DartifactId=first-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false