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文件中添加
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文件插入
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/>标签中添加
10、依赖冲突:C 依赖A、B两个版本产生冲突
解决办法:1、短路优先(优先选择较短路径),A->B->C->X(jar),A->D->X(jar),那么就选择后者
2、先声明先优先(如果路径相同,则谁先声明,先解析谁)
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、先声明先优先(如果路径相同,则谁先声明,先解析谁)
相关文章推荐
- Codeforces Round #250 (Div. 2) 437A The Child and Homework(模拟)
- HLG2179 组合(dfs水水更健康)
- 通过一个date获取年龄
- ios MVC笔记
- gulp
- 利用Hexo搭建个人博客-环境搭建篇
- JDK与JRE的区别
- 海量数据处理一
- HDU1495-非常可乐-BFS
- UITextFielddelegate委托方法注释
- hdu4770 状态压缩+枚举
- LeetCode(47)Permutations II
- Java技术积累——用最原始的代码见证分页查询实现原理
- hust1350Trie【字典树+dfs || 字典树 + LCA】
- LeetCode(47)Permutations II
- Linux编程基础
- Servlet中用于会话跟踪的三种机制
- HDU3722 Card Game(KM最小费用圈覆盖)
- 黄聪:WordPress动作钩子函数add_action()、do_action()源码解析
- linux 文件系统解析及相关命令