下载
marven下载地址
选择Binary zip archive apache-maven-3.5.4-bin.zip下载即可
marven安装配置
1、解压mavern安装包到指定目录,我的是解压到 D:\mysoftware\marven\apache-maven-3.5.2 目录下
2、配置Maven环境变量
在计算机-》属性-》高级系统设置-》环境变量-》系统变量-》新建
变量名:M2_HOME
变量值:D:\mysoftware\marven\apache-maven-3.5.2
然后在path变量值后添加;%M2_HOME\bin; //不用忘记前面有一个分号
3、检查安装是否正确
cmd运行
mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:1
3+08:00)
Maven home: D:\mysoftware\marven\apache-maven-3.5.2\bin\..
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: D:\mysoftware\jdk1.7.0_79\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
我的marven版本是3.5.2,当前最新的是3.5.4
4、修改本地仓库的位置
本地仓库的默认位置是C:\Users\用户名.m2\repository
这个位置对我们而言很不友好,故修改仓库位置到指定的文件夹
在安装Maven的目录下找到conf文件夹,在文件夹中找到settings.xml文件,更改默认的仓库位置
localRepository节点默认是被注释掉的,需要把它移到注释之外,然后将localRepository节点的值改为指定目录
<localRepository>D:\mysoftware\marven\apache-maven-3.5.2\repository</localRepository>
cmd
mvn help:system
D:\mysoftware\marven\apache-maven-3.5.2\repository 文件夹下就出现了很多的文件,这些是marven从中央仓库位置下载到本地的
myeclipse配置marven
myeclipse下marven环境的配置是
windows-》preference-》Myeclipse-》Marven4MyElsipse
勾选Enable Marven4MyElsipse features
右窗口最下边有marven默认的jdk,选择的自己的jdk安装路径
installations-》add添加marven 选择marven安装路径
usersetting-》D:\mysoftware\marven\apache-maven-3.5.2\conf\settings.xml
marven构建项目
由于不可抗力因素,我们可能无法访问中央仓库的地址,所以修改中央仓库的地址为阿里云的镜像地址
修改安装目录下conf/setting.xml文件
在mirrors节点中添加一下内容
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
1、普通方式构建java项目
mvn archetype:create 在maven3.0.5以上版本舍弃了,使用generate生成项目
mvn archetype:generate
选择archetype,默认是7 quickstart
Maven常用 三种archetype说明
创建java项目,选择默认按enter执行
创建web项目,输入webapp,进行筛选,选择一个输入编号,按enter执行
输入groupId,artifactId个version的值
Define value for property ‘groupId’: cn.wy
Define value for property ‘artifactId’: mvtest
Define value for property ‘version’ 1.0-SNAPSHOT: : 1.0
Define value for property ‘package’ cn.wy: :回车
Confirm properties configuration:
groupId: cn.wy
artifactId: mvtest
version: 1.0
package: cn.wy
Y: : 回车
项目构建完成
GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
一般GroupID就是填com.leafive.test这样子。groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
比如我创建一个项目,我一般会将groupId设置为cn.wy,cn表示域为中国,wy是我个人姓名缩写,artifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,你的包结构最好是cn.wy.testProj打头的,如果有个StudentDao,它的全路径就是cn.wy.testProj.dao.StudentDao、
java项目构建成功,目录结构如下
mvtest
-src
-main
-java
-cn
-wy
App.java
-test
-java
-cn
-wy
App.java
-pom.xml
目前Maven只是帮我们生成了src/main/java(存放项目的源代码)和src/test/java(存放测试源代码)这两个目录,但实际项目开发中我们一般都会有配置文件,例如log4j.properties,所以我们还需要手动创建src/main/resources(存放项目开发中用到的配置文件,如存放log4j.properties等)和src/test/resources(存放测试时用到的配置文件)
mvtest
-src
-main
-java
-cn
-wy
App.java
-resource
-test
-java
-cn
-wy
App.java
-resource
-pom.xml
2、快捷方式构建java项目
mvn archetype:generate -DgroupId=cn.wy -DartifactId=mvtest2 -DinteractiveMode=false
-DarchetypeArtifactId=maven-archetype-quickstart 可加可不加,默认的
3、建立一个web应用
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=cn.wy -DartifactId=webtest
输入版本号
回车确认
回车
web项目构建成功,目录结构如下
webtest
-src
-main
-webapp
-WEB-INF
web.xml
index.jsp
-resource
-pom.xml
创建好的JavaWeb项目中目前只有src/main/resources目录,因此还需要手动添加src/main/java、src/test/java、src/test/resources
webtest
-src
-main
-java
-webapp
-WEB-INF
web.xml
index.jsp
-resource
-test
-java
-resource
-pom.xml
pom.xml文件说明
通过Maven构建的JavaProject,在项目的根目录下都会存在一个pom.xml文件,进入myapp目录,可以看到有一个pom.xml文件,这个文件是Maven的核心。
1、pom意思就是project object model。
2、pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
3、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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.wy</groupId>
<artifactId>mvtest</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>mvtest</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文件的节点元素说明:
<project> pom文件的顶级节点
<modelVersion> object model版本,对Maven2和Maven3来说,只能是4.0.0
<groupId> 项目创建组织的标识符,一般是域名的倒写
<artifactId> 定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
<version> 当前项目的版本,SNAPSHOT,表示是快照版本,在开发中
<packaging> 打包的方式,有jar、war、ear等
<name> 项目的名称
<url> 项目的地址
<properties> 属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<dependencies> 构建项目依赖的jar
marven打包发布项目
Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。
在命令行切换到webtest目录,执行:
mvn package
构建成功后,webtest目录目录下多了一个target目录,在这个目录下会打包成webtest目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了。
不过如果没装Tomcat或者不想麻烦的话,我们可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:
<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>cn.wy</groupId>
<artifactId>webtest</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>webtest Maven Webapp</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>
<build>
<finalName>webtest</finalName>
<!--添加插件配置-->
<pluginManagement>
<!--配置Jetty-->
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
<!--添加插件配置-->
</build>
</project>
cmd中进入webtest目录,然后运行
mvn jetty:run
在浏览器输入localhost:8080/webtest,可以看到Hello World