一、安装
我使用的是免安装版的,直接解压缩就可以使用。
二、配置环境变量
-
打开环境变量配置。右键计算机→属性→高级系统设置→高级→环境变量,在系统变量中配置。
-
配置MAVEN_HOME。在系统变量中新建,变量名MAVEN_HOME,变量值,maven文件夹路径,我的路径是F:\Wab\资料\maven\资料\apache-maven-3.2.3,最好不要有中文,我比较懒,不想改,保存。
-
配置path,找到path系统变量,点开,新建,输入%MAVEN_HOME%\bin
-
验证是否安装完成,运行cmd,输入mvn -v,显示maven版本则成功。
三、配置本地仓库
打开配置文件,在maven文件夹中有一个conf文件夹,里面有一个settings.xml文件。apache-maven-3.2.3\conf\settings.xml
打开,修改这么一行代码:这里写你的本地仓库的路径
- 编译 java ->class
- 测试:针对于项目中的关键点进行测试,亦可用项目的测试代码去测试开发代码
- 报告:将测试的结果进行显示
- 打包:将项目中包含的多个文件 压缩成一个文件,用于安装或部署(Java项目-jar web项目-war)
- 安装:将打成的包 放到本地仓库 供其他项目使用
- 部署:将打成的包放到服务器上准备运行
将Java js jsp 等各个文件进行筛选 组装 变成一个可以直接运行的项目
注意
Eclispse中部署的web项目可以运行
将eclipse中的项目 复制到Tomcat/webapps 中则不能运行
项目可以在webapps中直接运行
Eclispe中项目在部署时,会生成一个对应的部署项目,(在webapps中)区别于“部署项目因为二者目录结构不一致,因此Tomcat中无法直接运行eclipse中复制过来的项目”
需要部署:项目所需环境
maven常见命令(第一次执行命令)
mvn complie 只编译main目录中 的Java文件
mvn test 测试
mvn package 打成jar包
mvn install 将开发的模块放入本地仓库 供其他模块使用(放入的位置是通过gav 决定的)
mvn clean 删除target 目录(删除编译文件的目录)
编译文件的目录必须在pom.xml目录下
案例
通过maven创建java工程
maven project
配置 properties 中的maven版本
设置setting.xml
注意
编译执行
maven编译web项目
配置cargo一键部署
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.3</version>
<configuration>
<wait>true</wait>
<container>
<!-- 标识使用是那一种容器。这个名字是不能随便定的,cargo有一组支持窗口的列表 -->
<containerId>tomcat6x</containerId>
<!-- 容器的zip安装包。这是cargo非常强大的一点,它能够根据给出的zip安装包路径下裁并
解压到指定的installDir文件夹下。你也可以直接使用home来指定一个已存在的容器位置。 -->
<!--home>D:/apache-tomcat-6.0.29</home-->
<zipUrlInstaller>
<url>http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.zip</url>
<installDir>/usr/local/${artifactId}/tomcat-installer</installDir>
</zipUrlInstaller>
</container>
<configuration>
<!-- 容器的指定安放位置。这个和installDir的区别在于installDir只是一个解压用的文件夹
而home是这样一个文件夹:当cargo启动容器时,会将installDir中容器文件拷贝到home文件夹
下,以后部署的war包也会放到这个文件夹下的wabapps子文件夹内.-->
<home>/usr/local/${artifactId}/tomcat</home>
<properties>
<cargo.hostname>localhost</cargo.hostname>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
<deployer>
<deployables>
<deployable>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<type>war</type>
<properties>
<!-- deployer是部署时的相关配置,这个context是用来声明工程部署后的上下文,也就是
主机地址后面的一级目录位置。这个设置在maven构建中还是很必要的。因为maven默认打出
的war包是工程名+版本号,部署时如果不设置这里的context,那上下文就变成了工程名+版本号
的形式。这会使访问变得很不方便。注意,即使你通过修改war插件中的warName也是不能达到这个
目的,因为cargo认定的默认war包名就是工程名+版本号的形式。
<context>${artifactId}</context>
</properties>
</deployable>
</deployables>
</deployer>
</configuration>
</plugin>