1.maven为我们提供了一个archetype插件,用于创建符合maven规范的目录骨架。
maven规定是:
---src
---main
---java
---主代码
---test
---java
---测试代码
命令:
mvn -v 查看maven版本
compile 编译
test 测试
package 打包
clean 删除target
install 安装jar包到本地仓库中
创建目录的两种方式:
1.archetype:generate 按照提示进行选择
2.artchetype:generate -DgroupId=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名
3.在maven世界中任何一个依赖、插件、项目构建的输出都可以被称为构建,构
件通过坐标作为其唯一标识。
坐标
构件
仓库
本地仓库和远程仓库
在maven的安装目录中---lib---maven-model-builder-3.3.3.jar中有pom.xml
镜像仓库
在maven的安装目录中--config--settings.xml--mirrors标签(145行)
<mirror>
<!--镜像仓库的ID-->
<id>maven.net.cn</id>
<!--为哪个仓库配置镜像,中央仓库名为central,也可以使用通配符*-->
<mirrorOf>central</mirrorOf>
<name>central mirror in china</name>
<url>http://maven.net.cn/content/groups/public</url>
</mirror>
更改仓库的位置
找到settings.xml---<localRepository>标签(注意路径是/)
<localRepository>J:/test/repository</localRepository
4.在Eclipse中使用maven(如果是4.0以上或者Myeclipse就不必安装插件)
1.找到Eclipse的dropins文件夹,把maven插件放入即可
2.修改Eclipse的jvm:找到eclipse.ini文件,打开添加-vm:c:\java...\javaw.exe
3.修改Eclipse中jre的配置
4.修改maven中的路径设置
1.一个完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署
2.maven生命周期:
clean 清理项目,分为三个阶段
pre-clean 执行清理前的工作
clean 清理上一次构建生成的所有文件
post-clean 执行清理后的文件
default 构建项目(最核心)包括:
compile、test、package install
site 生成项目站点包括以下阶段:
pre-site 在生成项目站点前要完成的工作
site 生成项目的站点文档
post-site 在生成项目站点后要完成的工作
site-deploy 发布生成的站点到服务器上
3.maven支持的插件简单介绍:(https://maven.apache.org/plugins/index.html)
source 可以将项目的源码进行打包
举例:在pom.xml中配置
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<!--绑定source命令到packge命令生命周期中,
执行package命令时,自动执行source命令-->
<executions>
<execution>
<phase>package</phase>
<!--运行的目标-->
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</build>
然后执行 clean package命令
5.pom.xml介绍
<modelVersion>4.0.0</modelVersion>是一个固定的版本,是一个必须的元素,指定了当前pom的版本
坐标的信息
<!--主项目的标识,用来定义当前maven属于哪个实际的项目的,以反写的公司网址+项目名-->
<groupId>com.hbtt.test.a</groupId>
<!--表示一个模块的标识,实际项目中的一个模块,一般使用时间的项目名+模块名-->
<artifactId>haha</artifactId>
<!--表示当前项目的版本号-->
<!--0.0.1
第一个0表示大版本号
第二个0表示分支版本号
第三个0表示小版本号
snapshot 快照版本
alpha 内部测试
beta 公测
Release 稳定
GA 正式发布
-->
<version>0.0.1-SNAPSHOT</version>
<!--maven项目的打包方式-->
<!--
默认是jar
war zip pom
-->
<packaging>jar</packaging>
<!--项目的描述名,在产生项目文档时使用-->
<name>haha</name>
<!--项目地址-->
<url>http://maven.apache.org</url>
<!--项目描述-->
<description></description>
<!--开发人员列表-->
<developers></developers>
<!--许可证信息,比如用到开源框架时-->
<licenses></licenses>
<!--组织信息-->
<organization></organization>
<!--依赖信息-->
<dependencies>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!--依赖的范围,test表示junit只在测试依赖范围内有用,在主代码中会报错
maven提供了三种classpath:1.编译2测试3运行
scope有六种级别:
1.compile:默认的范围,编译测试运行都有效
2.provided:在编译和测试时有效,比如servlet API
3.runtime:在测试和运行时有效 比如JDBC驱动,编译时只需要jdbc主代码提供的API,只有在
测试和运行时才需要jdbc的实现代码
4.test 只在测试范围有效
5.system:与本机系统相关联,可移植性差,编译测试时有效,比如引入本地的JAVAHOME可能
会因为改变系统,路径不一致而报错
不一致
6.import:一个导入的范围,只用在<dependencyManagement>标签中表示从其他的
pom中导入dependecy的配置
-->
<scope>test</scope>
<!--设置依赖是否可选,只有两个值true和false,默认false,子项目默认是继承的,
如果true,子项目必须显示的继承-->
<optional></optional>
<!--排除依赖传递列表-->
<exclusions>
<exclusion></exclusion>
</exclusions>
</dependencies>
<!--依赖管理,可以包含多个依赖,但是它不会被运行,引入到实际的依赖中,这个标签用于
定义在父模块中,供子模块继承。比如junit放在父模块中,其他继承即可-->
<dependencyManagement>
<dependencies>
<dependency></dependency>
</dependencies>
</dependencyManagement>
<!--通常为构件行为提供相应的支持-->
<build>
<plugins>
<plugin>
groupId ,artifactID version等标签
</plugin>
</plugins>
</build>
<!--通常用于子模块对父模块pom的继承-->
<parent></parent>
<!--用来聚合运行多个的maven项目,如果有多个maven需要编译,使用此标签,可以指定多个模块一起编译-->
<modules></modules>
6.修复JDK版本
1.找打maven的settings文件中的profiles标签
2. 按如下格式书写,必须按如下写
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVesion>1.7</maven.compiler.compilerVesion>
</properties>
</profile>
7.用maven构件web项目
注意:
1.选择archetype-webapp选项
2.对于index报错,添加servlet依赖
3.检查文件的输出路径:build Path-->configure build path-->source选项
4.改成web项目
选择项目属性-->maven-->project Facets 中勾选上Dynamic web services选项
5.修改部署时的默认配置:
点击项目属性--->选择Deployment Assembly选项-->删除掉测试的文件
6.使用jetty启动web项目:引入jetty插件依赖,然后运行时输入jetty:run