`

Maven3培训文档

 
阅读更多

1.Maven安装配置
下载、安装Maven,目录结构如下:

如果使用命令行,需要配置 HOME、PATH、CLASSPATH等;[此为可选]

2.配置文件修改(配置本地库、代理等)
在电脑的用户目录下,会有如下的 .m2目录,里面包含 settings.xml 文件(此文件是Maven本地的配置文件,如果没有,则从 Maven的安装目录/conf/下拷贝该文件,不过,培训材料中会提供统一配置好的该配置文件,无须自己再拷贝修改),如下图示:

该文件中,有需要注意的地方,如下(文档中的注释部分写的也比较详细)
<localRepository> 本地仓库位置,若想使用自己的,可自行指定
<pluginGroups> <pluginGroup> 非官方插件(Maven默认不提供其他的插件),固定配置
<proxies> <proxy> 代理设置
<mirrors> <mirror> 镜像地址,全部转由私服请求,固定配置
<profiles> <profile> 配置仓库请求,固定配置 


2.5 jar包管理解释(Maven其中一个目的) 。。。 

  1. 仓库概念解释

现有的项目,Jar包都是单独的,相互没有联系,但是都是相同的拷贝,不便于管理,使用Maven,可以把jar包全部抽出来,放在另外一个地方统一进行管理,每个项目持有jar的引用,便于项目管理和jar包升级
Maven中央库拥有全世界绝大多数的开源项目jar,可以直接在pom.xml文件中配置引用即可,如下图:

但是,这样就会产生诸多问题:
a, 造成网络拥挤;
b, 若中央库挂掉,项目不能正常的运行;
c, 持续请求外部仓库,耗时严重;
c, 本地jar,和非公开的jar,无法供其他项目使用;
d, 。。。。。。
因此,有了私服(可以理解为"本地公共仓库")的概念,如下图示,以上的问题可以很好的解决。
 

4.常用的Maven命令
命令格式: mvn [命令1] [命令2] ...
e.g.:
命令行:mvn clean, mvn compile, mvn clean compile, mvn test, mvn package, mvn clean package, mvn install 等
Eclipse: (去掉mvn前缀即可)
解释: clean 清理项目
compile 编译源代码和测试代码
test 执行测试代码
package 项目打包(打成 jar 或者 war 等格式)
install 将项目包(jar或者war)提交到本地仓库,供其他项目使用 
分析jar包依赖的命令:
dependency:tree --查看当前项目所有的jar包,极其导入关系(常用于jar包冲突)[较多使用]
dependency:analyze --查看当前项目缺少的jar包 和 多余的jar包(常用于处理依赖)[较少使用] 
查看错误详细信息命令:
命令后面加参数: -X ,查看Maven详细运行情况,如 mvn clean install -X ,让Maven打开debug日志。 
一般执行 mvn help:describe -Dfull -Dplugin=compiler 在屏幕上直接输出很多东西,这时候看起来可能就没那么方便了. 可以把这个输出 写到文件中 就方便多了 可以这么干 mvn help:describe -Dfull -Dplugin=compiler > c:\complie_describe.txt 


Maven 任务执行的顺序:
简单来说依次为: clean , compile --> test --> package --> install --> deploy , site
解释:... 
5. <dependencys> <dependency> 标签解释
<dependency>
<groupId>com.travelsky.tdp.pkgstock</groupId>
<artifactId>rapid-xsqlbuilder</artifactId>
<version>1.0</version>
</dependency> 

  1. <plugins> <plugin> 标签解释

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
</plugin> 
7. <dependencyManagement> <pluginManagement> 标签解释 

8. 将现有项目提供Maven支持
参考《Web项目添加Maven支持步骤.doc》文档 
9. POM.XML 文件继承解释
参考《POM文件继承图解.png》图片 
10. 补充 
Web项目需要指定<outputDirectory>标签,其值为 ${basedir}/WebRoot/WEB-INF/classes 


现有项目使用Maven调用junit单元测试,和单独使用junit进行单元测试,测试代码路径不同,
为了能在Maven支持的项目中单独使用JUnit单元测试,需要显式声明 <testOutputDirectory> 标签,其值和
<outputDirectory> 标签值相同,如下:

<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory> 
<outputDirectory>${basedir}/WebRoot/WEB-INF/classes</outputDirectory>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics