背景:接触java项目已经两天了,从环境的搭建到修改里面的小bug,带着大大的疑惑向前前进着,里面的好多内容自己不是很了解,今天师姐还给我们讲解了一下框架,貌似有点感觉,师姐一直说我们的项目是Maven项目,在搭建环境的时候调试代码的时候也遇到了这个,但是一直不知道它是什么,用它有什么好处,好奇心攒到一定程度就会爆发,听完师姐的讲解自己就查询关于Maven方面的内容。下面简单做一下总结。
一、何为Maven
Maven 是一个项目管理和构建自动化工具,通过它便捷的管理项目的生命周期。即项目的jar包依赖,开发,测试,打包发布等。
Maven项目的结构:
一个 maven 项目在默认情况下会产生 JAR 文件,另外 ,编译后 的 classes 会放在 ${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。
二、Maven安装
在上一篇博客《Java大牛养成记(9)----搭建java项目开发环境》中已经给大家介绍过了,这里不再赘述。
三、特点
1、jar包依赖
这个也许是maven最突出的特点,使用maven不需要上网单独下载jar包,只需要在配置文件pom.xml中配置jar包的依赖关系,就可以自动的下载jar包到我们的项目中。这样,别人开发或者使用这个工程时,不需要来回的拷贝jar包,只需要复制这个pom.xml就可以自动的下载这些jar包。
而且,如果我们自己下载jar包,可能会造成版本的不一致,这样在协同开发的过程中就有可能造成代码运行的不一致。通过使用maven精确的匹配jar包,就不会出现这种问题了。
2、项目坐标
Maven通过特定的标识来定义项目名称,这样既可以唯一的匹配其他的jar包,也可以通过发布,使别人能使用自己的发布产品。这个标识就被叫做坐标,其实就是简单的xml而已:
<groupId>com.test</groupId>
<artifactId>maventest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>maventest</name>
<url>http://maven.apache.org</url>
groupId:所述的项目名称,由于有的项目并不是一个jar包构成的,而是由很多的jar包组成的。因此这个groupId就是整个项目的名称。
artifactId:包的名称。
version:版本号。
packaging:包的类型,一般都是jar,也可以是war之类的。如果不填,默认就是jar。
name和url,一个是名称,一个是maven的地址。主要就是上面的几个参数。
当你想依赖什么jar包的时候就可以通过下面的方式依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
当建立一个Maven的项目,pom.xml文件将被解析,如果看到 log4j 的 Maven 坐标,然后 Maven 按此顺序搜索 log4j 库:
在 Maven 的本地仓库搜索 log4j
在 Maven 中央存储库搜索 log4j
在 Maven 远程仓库搜索 log4j(如果在 pom.xml 中定义)
Maven 依赖库管理是一个非常好的工具,为您节省了大量的工作。
3、测试驱动
Maven是测试驱动的开发思路,因此工程创建初期,就包含两个文件夹,main和test。一个用于放置开发的java文件,一个用于写test单元测试。这样每次开发的时候,提前设计单元测试,就能帮助减少BUG。
四、推荐链接
五、学习心得
1、遇到的就不要放过,这样你能学习到更多。
2、查询的过程就是查漏补缺的过程,学习过的加深印象,没有学习过的补充一下自己的知识库。
3、关键还是实践,有理论知识的支撑,相信在实践中能够更顺利。