一、 maven资源
maven 官网 http://maven.apache.org/
maven 中央资源库 http://mvnrepository.com/ 用到那个jar包就去中央资源库中搜索 一般都会有 如果没有找第三方的
下载maven包 http://maven.apache.org/download.cgi
下载下来解压后的目录结构
二、maven常用命令
maven 几个命令
compile 编译
test 测试
clean 清除 target文件夹
package 打包
install 安装到我们的本地仓库中
三、配置maven本地仓库
首先在电脑上建立存放仓库的文件夹,然后修改settings.xml配置
Settings.xml在conf文件夹中
打开settings.xml文件
将localRepository路径改下,改成我们自己建立的本地文件夹仓库
四、配置myeclipse 中的 maven
Myeclipse中的maven我们是不能用的,要配置成我们自己的maven,就好像配置我们的jdk一样。
打开myeclipse 选择window->preferences 搜索maven
我们要配置两个地方,一个是Installations 和 user settings
点击添加 选择你自己的maven添加上去 选中
在这里说下 这个settings.xml不是直接选择 conf下的settings.xml 要复制一份放到外面,我是放到java\maven\下。配置好后 选择apply 选择ok 配置完成。
五、一些积累,一些解释
新建maven项目时常用的两种archetype
1、maven-archetype-quickstart
2、maven-archetype-webapp web项目
Group id 是部门的网址加项目 www.pdwy.user
Artifact id 是这个项目中的一个模块 比如 user-core
Version 默认版本为 0.0.1-SNAPSHOT
在pom.xml中 加入
添加依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.10.Final</version>
</dependency>
hibernate4.1.10包和hibernate依赖的jar包就都下载到我们配置的本地工厂中了
添加依赖 <dependency>下有个节点叫 <scope> scope下有几个值
Compile 默认范围 是编译范围有效,在编译和打包时都会讲依赖存储进去
Provided 在编译和测试的过程有效,最后生成war包时不会加入,比如 servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突。
Runtime 在运行的时候依赖,在编译的时候不依赖
Test 范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
Import 暂时不清楚
System 暂时不清楚
依赖有传递性 如果是test范围的时候 不会传递 如果有间接依赖 包相同的话 先依赖的谁 就是谁的包 对于依赖传递而言 主要是针对 compile作用域传递
如果想要排除依赖可以使用
Exclusions进行排除
Maven内置隐式变量
${basedir} 项目根目录
${project.build.directory} 构建目录,缺省为target
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
${project.packaging} 打包类型,缺省为jar
${project.xxx} 当前pom文件的任意节点的内容
数据库做测试的时候 隔离数据库做访问 如何实现隔离 使用dbunit 技术。
测试业务层 使用 easymock 技术
聚合
可以建一个管理项目,然后把其他pom.xml聚合到到该项目的pom.xml中
使用modules 导入模块
继承
可以建一个管理项目,然后把重复的依赖和共有的一些配置放到该项目中的pom.xml,然后所有的项目继承这个管理项目。
继承和聚合的功能很相似,所以我们可以把聚合 导入模块的配置 放到继承的配置中,所以我们可以用一个管理项目。
继承的绝对路径是pom.xml文件
聚合是模块的位置
Nexus
用到maven 那一般就会搭建自己的私服,下面是网上找的连接,具体流程写的很详细。我在这里就不在多说。
http://blog.csdn.net/ichsonx/article/details/14642875
http://blog.csdn.net/ichsonx/article/details/14642897
该作者讲的maven也挺详细的,大家可以看看。
http://blog.csdn.net/gudong2945/article/category/873911
Maven的三套生命周期
clean生命周期
pre-clean
clean maven-clean-plugin:clean
post-clean
default生命周期
validate
initialize
generate-sources
process-sources
generate-resources
process-resources maven-resources-plugin:resources 复制主资源文件至主输出目录
compile maven-compiler-plugin:compile 编译主代码至主输出目录
process-classes
generate-test-sources
process-test-sources maven-resources-plugin:testResources 复制测试资源文件至测试输出目录
generate-test-resources
process-test-resources
test-compile maven-compiler-plugin:testCompile 编译测试代码至测试输出目录
process-test-classes
test maven-surefire-plugin:test 执行测试用例
prepare-package
package maven-jar-plugin:jar 创建项目jar包
pre-integration-test
integration-test
post-integration-test
verify
install maven-install-plugin:install 将项目输出构建安装到本地仓库
deploy maven-deploy-plugin:deploy 将输出构建部署到远程仓库
site生命周期
pre-site
site maven-site-plugin:site
post-site
site-deploy maven-site-plugin:deploy
Maven 自定义插件
用户可以将某个插件目标绑定到生命周期的某个阶段上。 上面的例子是创建项目的源码jar包,内置的插件绑定关系中并没有涉及这一任务,因此需要用户自行配置。maven-source-plugin可以帮助我们完成。
上述配置中,除了基本的插件坐标声明外,患有插件执行配置,executions下每个execution子元素可以用来配置执行一个任务,通过phrase设置,将其绑定到compile生命周期阶段上,再拖过goals配置指定要执行的插件目标。
如果用到什么插件的话 直接上官网搜索 然后copy下来就行了。
配置jetty服务器
上述配置中,除了基本的坐标声明外,还定义了scanintervalseconds 间隔10秒就检查一下项目中是否有改动, contextpath配置了上下文,在浏览器中直接访问,访问地址为:
Localhost:8787/hello/这里是你的servlet访问路径。connectors配置了端口号以及最大空闲时间maxidietime属性
自己看视频的学习总结,如有人喜欢,可以转载,请注明出处,附上本文连接。谢谢!