maven学习笔记(二)

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、先声明先优先(如果路径相同,则谁先声明,先解析谁)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值