您的位置:首页 > 其它

maven学习笔记(二)

2015-08-31 20:19 232 查看
1、maven常用命令:

1)mvn -v:查看maven版本

2)mvn compile:编译

3)mvn test:测试

4)mvn package:打包

5)mvn clean:删除target(编译的源文件和测试报告)

6)mvn install:安装jar包到本地仓库

2、archetype插件:用于创建符合maven规定的目录骨架。

1)archetype:generate 按照提示进行选择;

2)archetype:generate -DgroupId=组织名.公司网址的反写+项目名

-DartifactId=项目名-模块名

-Dversion=版本号

-Dpackage=代码所存在的包名

3、maven中的坐标和仓库

构件:所有的依赖、插件、项目构建的输出;

坐标:比如groupId/artifactId/version等唯一标识。

仓库:管理项目的依赖,包括本地仓库(.m2)和远程仓库(全球中央仓库地址:http://search.maven.org/#browse)

(添加国内)镜像仓库:在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>
</mirror>
修改本地默认仓库:在settings.xml中修改
<localRepository>新路径</localRepository>


4、在eclipse中安装maven插件:下载eclipse的maven插件,放置在eclipse的dropins文件夹下,重启eclipse,配置window->perference->maven,修改maven安装路径,和settings.xml路径。

5. 完整的项目构建过程包括:清理、编译、测试、打包、集成测试、验证、部署

maven生命周期:执行某个阶段,其之前的阶段会顺序的执行。(比如执行package,会先执行clean/compile/test)

clean(清理项目):pre-clean 执行清理前的工作、clean 清理上一次构建生成的所有文件、post-clean 执行清理后的文件;

default(构建项目)最核心:compile test package install;

site(生成项目站点):pre-site 在生成项目站点完成前要完成的工作、site 生成项目站点文档、post-site在生成项目站点后要完成的工作、site-deploy 发布生成的站点到服务器上。

6.使用maven插件:在pom.xml文件插入
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>


7、pom.xml常用元素:pom.xml是maven的核心管理文件,用于项目描述、组织管理、依赖管理和构建信息的管理。

<project/>:根元素,包含了pom的约束信息;

<modelVersion/>:指定了当前pom的版本;

<groupId/>:主项目标识,反写的公司网址+项目名;

<artifactId/>:项目名+模块名

<version/>:当前项目版本号,第一个0标示大版本号,第二个0表示分支版本号,第三个0表示小版本号,

0.0.1SNAPSHOT 快照版

alpha 内部测试

beta 公测

release 稳定

GA 正式发布

<packaging/>:打包方式,默认是jar,还包括war/zip/pom;

<name/>:项目描述名,产生项目文档使用;

<url/>:项目的地址

<description/>:项目描述;

<developers/>:开发者;

<licenses>:许可证信息;

<organization/>:组织

<dependencies>

<dependency>

<groupId/>

<artifactId/>

<version/>

<type/>

<scope/>:依赖范围
“test” 测试范围内有效

<option/>设置依赖是否可选true、false

<exclusions>排除依赖传递列表

<exclusion/>

</exclusions>

</dependency>

</dependencies>:

<dependencyManagement>:依赖的管理,不会被执行,定义在父模块中供子模块继承

<dependencies>

<dependency/>

</dependencies>

</dependencyManagement>

<build>

<plugins>:插件列表

<plugin>

<groupid/>

<artifactId/>

<version/>

</plugin>

<plugins>

</build>

<parent/>:子模块中pom对父模块的继承

<modules/>:聚合运行着的多个maven项目

8、依赖范围<scope/>:

compile:默认范围,编译测试运行都有效

provided:在编译和测试时有效

runtime:在测试和运行时有效

test:只在测试有效

system:与本机系统相关联,可移植性差

import:导入的范围,她只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置

9、修改maven的jre默认版本:

在settings.xml中的<profiles/>标签中添加

<profile>
<id>jdk-1.7</id>

<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compile.source>1.7</maven.compile.source>
<maven.compile.target>1.7</maven.compile.target>
<maven.compile.compileVersion>1.7</maven.compile.compileVersion>
</properties>
</profile>


10、依赖冲突:C 依赖A、B两个版本产生冲突

解决办法:1、短路优先(优先选择较短路径),A->B->C->X(jar),A->D->X(jar),那么就选择后者

2、先声明先优先(如果路径相同,则谁先声明,先解析谁)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: