1.maven的介绍;
Maven 是一个项目管理和构建自动化工具。maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
2.主要优点:
统一开发规范与工具;
统一管理jar包;
3.pom.xml;
因为这个配置文件是Maven的核心,因此有必要详细解读一下pom.xml,来先看一下上面的几个:
1、modelVersion :指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0
2、groupId:顾名思义,这个应该是公司名或是组织名。一般来说groupId是由三个部分组成,每个部分之间以"."分隔,第一部分是项目用途,比如用于商业的就是"com",用于非营利性组织的就 是"org";第二部分是公司名,比如"tengxun"、"baidu"、"alibaba";第三部分是你的项目名
3、artifactId:可以认为是Maven构建的项目名,比如你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式
4、version: 版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。在Maven中很重要的一点是,groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标,这非常重要,我在使用和研究Maven的时候多次感受到了这点。
4.maven工程的结构:
pom.xml 用于maven的配置文件
/src 源代码目录
/src/main 工程源代码目录
/src/main/java 工程java源代码目录
/src/main/resource 工程的资源目录
/src/test 单元测试目录
/src/test/java
/target 输出目录,所有的输出物都存放在这个目录下
/target/classes 编译之后的class文件
5.常见的问题总结:
1.增加或者删除依赖:
答:直接在pom文件中加入一个dependency节点,如果要删除依赖,把对应的dependency节点删除即可。
2. 问:我的目录是非标准的目录结构,如何设置让maven支持?
答:指定source目录和test-source目录即可。
< build >
< directory > target </ directory >
< sourceDirectory > src </ sourceDirectory >
< scriptSourceDirectory > js/scripts </ scriptSourceDirectory
< testSourceDirectory > test </ testSourceDirectory >
< outputDirectory > bin </ outputDirectory >
< testOutputDirectory > bin </ testOutputDirectory >
</ build >这个例子把源代码设置成了src目录,测试代码在test目录,所以输出到bin目录。这里要注意,directory如果也设置成bin目录的 话,maven打包的时候会引起死循环,因为directory是所有工作存放的地方,默认包含outputDirectory定义的目录在内。
3.我源代码是UTF8格式的,我如何在maven中指定?
设置一个变量即可
< project >
...
< properties >
< project.build.sourceEncoding > UTF-8 </ project.build.sourceEncoding >
</ properties >
...
</ project >
4.问:我的源代码目录中有一部分文件我不想让maven编译,怎么做?
<excludes>
<exclude>com/sun/enterprise/config /ConfigBeansFactory.java</exclude>
<exclude>com/sun/enterprise/config/clientbeans /**</exclude>
</excludes>
5.5、如何在使用命令方式下载依赖的同时下载源码
1. 使用maven命令:mvn dependency:sources 下载依赖包的源代码。
2. 使用参数: -DdownloadSources=true 下载源代码jar。 -DdownloadJavadocs=true 下载javadoc包。