maven:
1.唯快不破.maven快速入门
1.1.maven介绍及环境搭建.
maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.
解压apache maven,,,
1.会发现在bin目录下面--->包含了mvn的运行脚本.
2.boot 目录包含了一个类加载器的框架.maven使用它来加载自己的类库.
3.conf 是配置文件目录.比如以后经常用到的settings.xml
4.lib目录下面就是maven所使用到的一些类库.
1.2. maven目录结构(maven规定):
E:.
| pom.xml (Pom.xml要放在项目根目录下面.与src同级.)
|
+---src
| +---main
| | \---java (该目录下面就是项目包)
| | \---package(在这里面放置主代码 !!!!!!!!!)
| |
| \---test (测试)
| \---java
| \---package(测试代码)
|
\---target
2.稳打稳扎-maven基础知识
2.1常用的构建命令介绍.(cmd下面)
mvn -v :查看maven版本
mvn compile :编译
mvn test : 测试
Mvn package :打包我们的项目
mvn clean: 删除target. Target:文件夹:项目经过编译的字节码文件和测试报告.
mvn install :将指定项目打包成jar文件 发布到本地仓库中!!!!!!!!
**Note: 当我们执行mvn compile 的时候,如果程序用到了其他的支持包,那么就回去pom.xml中查找是否引入了该依赖包的坐标.
如果引入了坐标,那么就回去本地仓库中查找.如果仓库中有所依赖的jar包,会将该jar包加入项目的classpath下面.
如果本地仓库中没有该jar包,就会去网上mven中央仓库中查找下载.并放到本地仓库中,供我们项目进行使用.
note:pom.xml用于管理项目依赖和构建过程.~!@#$%^&*()_+
2.2自动创建目录骨架
maven为我们提供了archetype插件,用于创建符合maven规定的目录骨架.
cmd:
1.mvn archetype:generate 按照提示进行选择
2.mvn archetype:generate -DgroudId=组织名,公司网址的反写+项目名
-DartifactID=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名.
2.3maven中的坐标和仓库
1.在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为~~构件。
构件是使用~坐标~作为其唯一的标识.
2.组成基本~坐标:通过pom.xml中的<groupId><artifactId><version>
3.仓库:管理项目的依赖的.
本地仓库和远程仓库,如果在本地仓库中找不到我么需要的构建,就会去maven的
全球中央仓库中查找.查找到就会下载到本地仓库中供我们使用.如果远程中央仓库
也找不到,就会报错.
maven默认提供了全球中央仓库地址,从本地maven的lib下面找到maven-model-builder-3.3.9.jar.
打开找到pom.xml: https://repo.maven.apache.org/maven2
镜像仓库:maven的中央仓库的服务器都是位于国外的. 一些原因导致无法访问外网. 如此,国内有
这些仓库的镜像仓库,我们可以直接访问国内的镜像仓库,这样更快更稳定.
设置镜像仓库位置:
打开E:\Java\tools\maven\apache-maven-3.3.9\conf\settings.xml.
一旦配置了镜像仓库,所有访问都会转到镜像仓库.原仓库就不能直接被访问
<mirror>
<id>maven.net.cn</id>
<mirrorOf>central</mirrorOf><!--指为哪个仓库配置镜像-->
<name>central mirror in china</name>
<url>http://maven.net.cn/content/groups/public</url><!--国内镜像仓库的地址http://my.repository.com/repo/path-->
</mirror>
更改仓库的默认路径:
默认:maven从远程仓库中下载的构建默认是存放在当前用户目录中的.
如本地:C:\Users\Bradley\.m2\repository
修改:在settings.xml文件中: <localRepository>/path/to/local/repo</localRepository>
修改成:<localRepository>E:/Java/tools/maven/repo</localRepository>
同时可以copy一份settings.xml到E:/Java/tools/maven/repo目录下:以后更新maven的版本就不用修改settings.xml文件.
2.4 在eclipse中安装maven插件以及创建maven项目.
具体看word文档
2.5 maven的生命周期和插件.
一个项目构建的完整过程包括:
清理,编译,测试,打包,集成测试,验证,部署.
maven的生命周期:
1.clean:清理项目
pre-clean:执行清理前的工作
clean:清理上一次构建生成的所有文件
post-clean:执行清理后的文件
2.default:构建项目(最核心)
包括:compile,test,package,install
3.site:生成项目站点(根据pom.xml中的信息自动生成一个站点)
pre-site:在生成项目站点前要完成的工作.
site:生成项目的站点文档.
post-site:在生成项目站点后要完成的工作.
site-deploy:发布生成的站点到服务器上.
2.6 pom.xml常见元素介绍:
<!-- 坐标信息 -->
<groupId>com.imooc.hi</groupId><!-- 主项目的标识,用来指定当前的maven属于哪个实际的项目:反写公司网址+项目名 -->
<artifactId>hi</artifactId><!-- 实际项目中的一个模块的标识:项目名+模块名 -->
<version>0.0.1-SNAPSHOT</version><!-- 当前项目的版本号 -->
<!--
第1个数字:表示大版本号,第2个数字:表示分支版本号,第3个数字:表示小版本号
snapshot:快照,alpha:内部测试,beta:公测,Release:稳定,GA:正式发布
-->
<!-- packaging:maven项目打包方式,不指定的话,默认就是jar,还可打包成:war zip pom-->
<packaging>jar</packaging>
<!-- name:项目描述名 -->
<name>hi</name>
<!-- 项目的地址 -->
<url>http://maven.apache.org</url>
<!-- 项目描述 -->
<description></description>
<!-- 项目开发人员的列表 -->
<developers></developers>
<!--许可证信息 -->
<licenses></licenses>
<!-- 组织信息 -->
<organization></organization>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- dependencies依赖列表 ,可包含多个依赖项-->
<dependencies>
<!-- 依赖项 -->
<dependency>
<!-- 依赖项通过如下坐标确定依赖项所在的位置:在依赖项里面~指定坐标 -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope><!-- 依赖的范围:此时表示在测试范围内有效 -->
<type>jar</type>
<optional>false</optional><!-- 设置依赖是否可选,默认是false -->
<!--exclusions:排除依赖传递列表 -->
<exclusions><exclusion></exclusion></exclusions>
</dependency>
</dependencies>
<!-- 依赖的管理 -->
<dependencyManagement><!-- 主要用于定义在父模块中,供子模块所继承用的. -->
<dependencies>
<!-- <dependency></dependency> -->
</dependencies>
</dependencyManagement>
<!-- 为构建的行为提供相应的支持,下面经常用到的就是plugins -->
<build>
<!-- 插件列表 -->
<plugins>
<plugin><!-- 在plugin里面依旧要引入~坐标 --><!-- 此时运行package命令是同时将源码进行打包 -->
<groupId></groupId><artifactId></artifactId><version></version>
</plugin>
</plugins>
</build>
<!-- 用于子模块中对父模块poxm的继承
<parent></parent>
-->
<!-- 集合运行的多个maven项目,编译多个maven模块
<modules><module></module><module></module></modules>
-->
2.7依赖范围<dependencies><dependency><scope>xxx</scope></dependency></dependencies>
在开发时,如果要使用某一个框架,就要将该框架的jar包引入
到项目的classpath路径中,这样我们的项目就可以使用该框架
为我们封装的一些方法.maven中为我们提供了多种classpath:
编译,测试,运行...
compile:默认的范围,编译,测试,运行 都有效.
provided:在编译和测试时有效.在最后的运行时不会被加入.
runtime:在测试和运行时有效.(eg:jdbc驱动的实现).
test:只在测试时有效.
import:导入的范围,只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置.
表示从其他的pom中继承过来的依赖.
2.8依赖传递.具体看demo in eclipse
2.9依赖冲突.
1.短路优先(会优先解析路径短的)
A-->B-->C-->X(jar)
A-->D-->X(jar) (first)
2.先声明先优先.(路径长度相同)
如果在路径长度相同时,则谁先声明.先解析谁.
3.0聚合和继承
对于多个maven项目我们想将其安装到本地仓库中,那么就需要依次对
每个项目进行install命令.maven中有一种方式.可以放到一起运行-->聚合.
note:如何寻找第三方jar文件坐标:
1. http://www.mvnrepository.com
2. eg: input commons-io in search box
3. click the jar item in what we searched.
4. choose one with a spacial version. and click
5. then the next page will show the location of the jar.
note:经常看到maven出错了,但是把错误解决了,还是看到项目名上面有红叉叉,进行如下操作:更新一下maven项目就可以了.
点击项目名,右键,选择maven-->update project...更新一下就ok了.
3.使用maven创建一个web项目.发布到jetty中.
1.唯快不破.maven快速入门
1.1.maven介绍及环境搭建.
maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.
解压apache maven,,,
1.会发现在bin目录下面--->包含了mvn的运行脚本.
2.boot 目录包含了一个类加载器的框架.maven使用它来加载自己的类库.
3.conf 是配置文件目录.比如以后经常用到的settings.xml
4.lib目录下面就是maven所使用到的一些类库.
1.2. maven目录结构(maven规定):
E:.
| pom.xml (Pom.xml要放在项目根目录下面.与src同级.)
|
+---src
| +---main
| | \---java (该目录下面就是项目包)
| | \---package(在这里面放置主代码 !!!!!!!!!)
| |
| \---test (测试)
| \---java
| \---package(测试代码)
|
\---target
2.稳打稳扎-maven基础知识
2.1常用的构建命令介绍.(cmd下面)
mvn -v :查看maven版本
mvn compile :编译
mvn test : 测试
Mvn package :打包我们的项目
mvn clean: 删除target. Target:文件夹:项目经过编译的字节码文件和测试报告.
mvn install :将指定项目打包成jar文件 发布到本地仓库中!!!!!!!!
**Note: 当我们执行mvn compile 的时候,如果程序用到了其他的支持包,那么就回去pom.xml中查找是否引入了该依赖包的坐标.
如果引入了坐标,那么就回去本地仓库中查找.如果仓库中有所依赖的jar包,会将该jar包加入项目的classpath下面.
如果本地仓库中没有该jar包,就会去网上mven中央仓库中查找下载.并放到本地仓库中,供我们项目进行使用.
note:pom.xml用于管理项目依赖和构建过程.~!@#$%^&*()_+
2.2自动创建目录骨架
maven为我们提供了archetype插件,用于创建符合maven规定的目录骨架.
cmd:
1.mvn archetype:generate 按照提示进行选择
2.mvn archetype:generate -DgroudId=组织名,公司网址的反写+项目名
-DartifactID=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名.
2.3maven中的坐标和仓库
1.在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为~~构件。
构件是使用~坐标~作为其唯一的标识.
2.组成基本~坐标:通过pom.xml中的<groupId><artifactId><version>
3.仓库:管理项目的依赖的.
本地仓库和远程仓库,如果在本地仓库中找不到我么需要的构建,就会去maven的
全球中央仓库中查找.查找到就会下载到本地仓库中供我们使用.如果远程中央仓库
也找不到,就会报错.
maven默认提供了全球中央仓库地址,从本地maven的lib下面找到maven-model-builder-3.3.9.jar.
打开找到pom.xml: https://repo.maven.apache.org/maven2
镜像仓库:maven的中央仓库的服务器都是位于国外的. 一些原因导致无法访问外网. 如此,国内有
这些仓库的镜像仓库,我们可以直接访问国内的镜像仓库,这样更快更稳定.
设置镜像仓库位置:
打开E:\Java\tools\maven\apache-maven-3.3.9\conf\settings.xml.
一旦配置了镜像仓库,所有访问都会转到镜像仓库.原仓库就不能直接被访问
<mirror>
<id>maven.net.cn</id>
<mirrorOf>central</mirrorOf><!--指为哪个仓库配置镜像-->
<name>central mirror in china</name>
<url>http://maven.net.cn/content/groups/public</url><!--国内镜像仓库的地址http://my.repository.com/repo/path-->
</mirror>
更改仓库的默认路径:
默认:maven从远程仓库中下载的构建默认是存放在当前用户目录中的.
如本地:C:\Users\Bradley\.m2\repository
修改:在settings.xml文件中: <localRepository>/path/to/local/repo</localRepository>
修改成:<localRepository>E:/Java/tools/maven/repo</localRepository>
同时可以copy一份settings.xml到E:/Java/tools/maven/repo目录下:以后更新maven的版本就不用修改settings.xml文件.
2.4 在eclipse中安装maven插件以及创建maven项目.
具体看word文档
2.5 maven的生命周期和插件.
一个项目构建的完整过程包括:
清理,编译,测试,打包,集成测试,验证,部署.
maven的生命周期:
1.clean:清理项目
pre-clean:执行清理前的工作
clean:清理上一次构建生成的所有文件
post-clean:执行清理后的文件
2.default:构建项目(最核心)
包括:compile,test,package,install
3.site:生成项目站点(根据pom.xml中的信息自动生成一个站点)
pre-site:在生成项目站点前要完成的工作.
site:生成项目的站点文档.
post-site:在生成项目站点后要完成的工作.
site-deploy:发布生成的站点到服务器上.
2.6 pom.xml常见元素介绍:
<!-- 坐标信息 -->
<groupId>com.imooc.hi</groupId><!-- 主项目的标识,用来指定当前的maven属于哪个实际的项目:反写公司网址+项目名 -->
<artifactId>hi</artifactId><!-- 实际项目中的一个模块的标识:项目名+模块名 -->
<version>0.0.1-SNAPSHOT</version><!-- 当前项目的版本号 -->
<!--
第1个数字:表示大版本号,第2个数字:表示分支版本号,第3个数字:表示小版本号
snapshot:快照,alpha:内部测试,beta:公测,Release:稳定,GA:正式发布
-->
<!-- packaging:maven项目打包方式,不指定的话,默认就是jar,还可打包成:war zip pom-->
<packaging>jar</packaging>
<!-- name:项目描述名 -->
<name>hi</name>
<!-- 项目的地址 -->
<url>http://maven.apache.org</url>
<!-- 项目描述 -->
<description></description>
<!-- 项目开发人员的列表 -->
<developers></developers>
<!--许可证信息 -->
<licenses></licenses>
<!-- 组织信息 -->
<organization></organization>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- dependencies依赖列表 ,可包含多个依赖项-->
<dependencies>
<!-- 依赖项 -->
<dependency>
<!-- 依赖项通过如下坐标确定依赖项所在的位置:在依赖项里面~指定坐标 -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope><!-- 依赖的范围:此时表示在测试范围内有效 -->
<type>jar</type>
<optional>false</optional><!-- 设置依赖是否可选,默认是false -->
<!--exclusions:排除依赖传递列表 -->
<exclusions><exclusion></exclusion></exclusions>
</dependency>
</dependencies>
<!-- 依赖的管理 -->
<dependencyManagement><!-- 主要用于定义在父模块中,供子模块所继承用的. -->
<dependencies>
<!-- <dependency></dependency> -->
</dependencies>
</dependencyManagement>
<!-- 为构建的行为提供相应的支持,下面经常用到的就是plugins -->
<build>
<!-- 插件列表 -->
<plugins>
<plugin><!-- 在plugin里面依旧要引入~坐标 --><!-- 此时运行package命令是同时将源码进行打包 -->
<groupId></groupId><artifactId></artifactId><version></version>
</plugin>
</plugins>
</build>
<!-- 用于子模块中对父模块poxm的继承
<parent></parent>
-->
<!-- 集合运行的多个maven项目,编译多个maven模块
<modules><module></module><module></module></modules>
-->
2.7依赖范围<dependencies><dependency><scope>xxx</scope></dependency></dependencies>
在开发时,如果要使用某一个框架,就要将该框架的jar包引入
到项目的classpath路径中,这样我们的项目就可以使用该框架
为我们封装的一些方法.maven中为我们提供了多种classpath:
编译,测试,运行...
compile:默认的范围,编译,测试,运行 都有效.
provided:在编译和测试时有效.在最后的运行时不会被加入.
runtime:在测试和运行时有效.(eg:jdbc驱动的实现).
test:只在测试时有效.
import:导入的范围,只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置.
表示从其他的pom中继承过来的依赖.
2.8依赖传递.具体看demo in eclipse
2.9依赖冲突.
1.短路优先(会优先解析路径短的)
A-->B-->C-->X(jar)
A-->D-->X(jar) (first)
2.先声明先优先.(路径长度相同)
如果在路径长度相同时,则谁先声明.先解析谁.
3.0聚合和继承
对于多个maven项目我们想将其安装到本地仓库中,那么就需要依次对
每个项目进行install命令.maven中有一种方式.可以放到一起运行-->聚合.
note:如何寻找第三方jar文件坐标:
1. http://www.mvnrepository.com
2. eg: input commons-io in search box
3. click the jar item in what we searched.
4. choose one with a spacial version. and click
5. then the next page will show the location of the jar.
note:经常看到maven出错了,但是把错误解决了,还是看到项目名上面有红叉叉,进行如下操作:更新一下maven项目就可以了.
点击项目名,右键,选择maven-->update project...更新一下就ok了.
3.使用maven创建一个web项目.发布到jetty中.