【项目管理】项目管理工具Maven

来源:互联网 发布:点阵取字模软件 编辑:程序博客网 时间:2024/05/17 15:41

     Maven作为一款项目管理软件,是Apache的产品。其实在最初使用Maven的时候我并不是很理解为什么要使用它。后来随着项目的深入,加之找了一些关于Maven的书籍和视频来看,对Maven的了解越来越多,便不得不感慨Maven的强大之处,也很佩服Apache团队的设计与智慧。

【正文:】

     废话不多说,我们进入正题。首先介绍一款软件不得不从安装开始。这里我只想说两点,第一个就是Maven的安装要配置环境变量,具体怎么配置,上网搜一下,一搜一大把;第二点,验证Maven安装成功,在命令行中输入mvn -v就可以了。

【pom文件】

     介绍完安装,我要说一下pom文件。起初在项目中,我只知道需要在pom文件里面加其他文件的依赖。因为我们的项目是用分布式实现的,所以各个层之间都是一个一个独立的项目,为了使各项目间能够联系互通,需要在pom文件中加以来。当时不很理解,后来想明白了。我们以往为了调用某个方法,都往项目中添加Jar包。而引入了Maven之后,不必费劲的往项目中一个一个的添加jar包,而是直接在pom文件中添加依赖,这样项目就会自动从本地仓库或远程仓库中下载我们所要依赖的jar包。这样介绍似乎太抽象了些,我慢慢说,先从pom文件的结构说起.....


     上面这个是pom文件的基本结构,最上面的位置是约束文件的写法的,是pom文件的固定开头,简单了解就好。后面的groupId一般指某个公司开发的项目名称;artifactId一般指这个项目里面具体的某个模块;最后的version指版本。Maven的使用必须要有网络,没有网络下载不了远程库中的它所需要的那些插件。上面我们说到了,其他项目需要添加Jar包,而用Maven管理的项目,只要在pom文件中添加依赖,就会将我们所需要的Jar包从本地仓库或远程仓库,也叫中央仓库中下载下来。

【添加依赖】


     上图中就是在pom文件中添加依赖的样式,只要在dependencies标签中添加依赖就可以了,样式具体也是groupId、artifactId和version,把这三个部分添加好就可以了。上面的代码其实少了一行代码,就是scope标签,这也定义了依赖的类型。Maven的依赖分为以下几类:


     具体对这几类依赖的讲解如下所示,Maven默认的依赖是compile:


【Maven的直观好处】

     我们平时用SVN来管理项目的版本,如果你是新来的员工,你需要去SVN把项目down下来,然后再去配置Tomcat之类的。但是有了Maven,你只需要把项目从SVN中下载下来之后,有pom文件,Maven就会自动把项目打包到Tomcat中,这就是Maven自动化的过程。但是我们要按照Maven要求的默认目录,将项目放到里面,Maven就会自动根据pom文件对我们的项目进行编译、测试、发布等等,这是Maven最直观的好处。

【本地仓库】

     其实我们下载安装的Maven就是一个几兆的小插件,我不知道叫它插件合适不合适。当我们需要依赖其他项目的时候,Maven就会去仓库里面找我们所用到的Jar文件或插件文件。我们安装的本地仓库默认是在“我的文档”中,有个.m2文件夹。我们项目运行过程中所要下载的东西全部都存放在了本地仓库中。当我们执行编译语句时,就是根据pom文件中的依赖去找项目所要依赖的Jar包或插件。如果这个Jar包存在于我们的本地仓库中,就直接从仓库中引入Jar包到classpath中;说到这里,我们就说一下Maven中的本地仓库和远程仓库。如果不存在就从网络中去中央仓库中去下载这个Jar包。下面说说如何自定义本地仓库的位置。在Maven安装文件下的config文件中,有个setting.xml文件,我们自己创建一个本地文件夹,然后把setting.xml文件拷贝到这个文件夹下,在setting.xml文件中的下面这个位置加上这样一句话,这样我们就成功将本地仓库的位置放在我们想放的位置了。

【中央仓库】

     首先我们要找到中央仓库的位置,在Maven安装目录的lib文件夹下,有个maven-model-builder的jar文件,打开


     打开之后,里面有个pom文件,扎到这个位置


     这个就是中央仓库的URL,如果本地仓库没有,Maven就会自动去中央仓库中去下砸Jar包。

【执行语句】

     最后介绍一下Maven的执行语句,介绍前,我先说一下Maven的目录结构。


     以上是Maven的完整路径,resources里面放的指配置文件。

  • 当我们调用了mvn:compile,相当于将src里面的内容进行了编译。同时生成一个target文件夹,编译到了里面的classes文件夹中
  • 当我们运行mvn:test,就会把test里面的内容进行编译,同时把target里面的内容进行清空
  • 还有mvn:install,可以把我们编译好的东西安装到我们的本地仓库中
  • 还有mvn:package,把我们的文件进行打包
     
     好了,关于Maven的介绍就到这里了。如果有兴趣可以深入学习一下,我这里介绍的不过是冰山一角。有问题的可以在下方留言,我们一起交流!

1 0
原创粉丝点击