Maven学习总结

一、 maven资源

maven 官网  http://maven.apache.org/

maven 中央资源库 http://mvnrepository.com/   用到那个jar包就去中央资源库中搜索 一般都会有 如果没有找第三方的

下载maven包  http://maven.apache.org/download.cgi

 

下载下来解压后的目录结构

 Maven学习总结_第1张图片

 

二、maven常用命令

maven 几个命令

compile 编译

test 测试

clean 清除 target文件夹

package 打包

install 安装到我们的本地仓库中

 

三、配置maven本地仓库

首先在电脑上建立存放仓库的文件夹,然后修改settings.xml配置

Settings.xmlconf文件夹中 

打开settings.xml文件

 

将localRepository路径改下,改成我们自己建立的本地文件夹仓库

 

四、配置myeclipse 中的 maven

Myeclipse中的maven我们是不能用的,要配置成我们自己的maven,就好像配置我们的jdk一样。

打开myeclipse  选择window->preferences 搜索maven

 Maven学习总结_第2张图片

我们要配置两个地方,一个是Installations 和 user settings

 Maven学习总结_第3张图片

点击添加 选择你自己的maven添加上去 选中


在这里说下 这个settings.xml不是直接选择 conf下的settings.xml 要复制一份放到外面,我是放到java\maven\下。配置好后 选择apply  选择ok 配置完成。

五、一些积累,一些解释

新建maven项目时常用的两种archetype

1maven-archetype-quickstart

2maven-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,tomcatweb服务器已经存在了,如果再打包会冲突。

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 自定义插件

 Maven学习总结_第4张图片

用户可以将某个插件目标绑定到生命周期的某个阶段上。 上面的例子是创建项目的源码jar包,内置的插件绑定关系中并没有涉及这一任务,因此需要用户自行配置。maven-source-plugin可以帮助我们完成。

上述配置中,除了基本的插件坐标声明外,患有插件执行配置,executions下每个execution子元素可以用来配置执行一个任务,通过phrase设置,将其绑定到compile生命周期阶段上,再拖过goals配置指定要执行的插件目标。

如果用到什么插件的话 直接上官网搜索 然后copy下来就行了。

 

配置jetty服务器

 Maven学习总结_第5张图片

上述配置中,除了基本的坐标声明外,还定义了scanintervalseconds 间隔10秒就检查一下项目中是否有改动, contextpath配置了上下文,在浏览器中直接访问,访问地址为:

Localhost:8787/hello/这里是你的servlet访问路径。connectors配置了端口号以及最大空闲时间maxidietime属性


自己看视频的学习总结,如有人喜欢,可以转载,请注明出处,附上本文连接。谢谢!



你可能感兴趣的:(java,maven,Web,jetty,nexus)