Java大牛养成记(10)----Maven
来源:互联网 发布:mac os x office 编辑:程序博客网 时间:2024/05/16 06:14
背景:接触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。
四、推荐链接
maven教程
Maven那点事儿(Eclipse版)
五、学习心得
1、遇到的就不要放过,这样你能学习到更多。
2、查询的过程就是查漏补缺的过程,学习过的加深印象,没有学习过的补充一下自己的知识库。
3、关键还是实践,有理论知识的支撑,相信在实践中能够更顺利。
- Java大牛养成记(10)----Maven
- Java大牛养成记(2)——JDBC
- Java大牛养成记(11)----Oracle安装教程
- java大牛养成记(13)——JVM
- Java 大牛养成计划
- Java大牛养成记(9)----搭建java项目开发环境
- Java大牛养成记——工作流
- Java大牛养成记——先占着
- Java大牛养成记——图片上传
- Java大牛养成记(1)——J2EE13规范
- Java大牛养成记(3)——SSH框架
- Java大牛养成记(4)——绝对路径与EL表达式
- Java大牛养成记(7)——后台权限拦截器
- Java大牛养成记(8)——何为servlet?
- Java大牛养成记(11)----Struts 2 & Struts 1
- Java大牛养成记(6)——将订单提交到数据库出错(Could not insert)
- Java大牛养成记——两分钟学会分页
- 技术大牛养成指南
- 强悍的 Linux —— 文件解压与解压
- 快速排序--全集
- ## Unity3D实现粒子光环效果
- html&&html5(3)
- java web3 jsp编程基础
- Java大牛养成记(10)----Maven
- c++实验7-素数和回文
- SQL SERVER 用户名、密码登入判断
- jQuery中this与$(this)的区别
- LruCache源码浅析
- MyEclipse使用总结——MyEclipse10安装SVN插件
- 第一次使用Direct3D
- 高德地图:点击获取火星坐标(经纬度)
- 每天一道算法题——拼音翻译成阿拉伯数字(有Wan,Qian,Bai,Shi单位)